3

Zapier では、Zap "Schedule by Zapier" をトリガーとして、"Code by Zapier" をアクションとして設定しました。アクション「Code by Zapier」の中で、次のことを実行したいと思います: URL を取得し、別の URL に POST します。ただし、このドキュメント ( https://github.com/bitinn/node-fetch/tree/32b60634434a63865ea3f79edb33d17e40876c9f#usage )から Zapier で「フェッチ」を使用すると、最初の要求 (GET) はすでに 900 ミリ秒かかり、2 番目の要求を実行するにはアクションを実行するには 1 秒以上かかります。ザピアはこれが気に入らない。誰でも助けることができますか?ありがとう、エルコ

4

1 に答える 1

3

これは、2 つのコード ザップを連鎖させることで実現できました。最初の zap は get を実行します (random.org から乱数を取得します):

「Javascript を実行 #1」

fetch('https://www.random.org/passwords/?num=1&len=24&format=plain&rnd=new')
    .then(function(res) {
    return res.text();
    })
    .then(function(body) {
        var output = {id: 1234, rawHTML: body};
        callback(null, output);
    })
    .catch(callback);

この呼び出しは、チェーンの次の部分で使用できる「rawHTML」という変数を返します。


「Javascript 2 を実行する」 inputData 変数のスクリーンショット

//random.org includes an extra \n in the password, need to clean that up
var cleanpassword = inputData.strPassword.replace(/\n/g, '');

var payload = {firstName: inputData.strFirstName, lastName: inputData.strLastName, username: inputData.strUserName, password: cleanpassword};

var testendpoint = 'http://requestb.in/s523eys5';
//var test = JSON.stringify(payload);
//console.log(test);
     
fetch(testendpoint, {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify(payload)
    }).then(function(response) {
        return response.text();
    }).then(function(responsebody) {
        var output = {response: responsebody};
        callback(null, output);
    }).catch(function(error) {
        callback(error);
    });


実際のエンドポイントをターゲットにする前にhttp://requestb.inを使用すると、このようなものをデバッグするのがはるかに簡単になります。

于 2016-10-04T04:37:52.817 に答える