Можете ли вы получить токен сеанса API и снова использовать его в той же функции? - PullRequest
0 голосов
/ 15 апреля 2020

Обязательный - я очень новичок во всех вещах Twilio и API, так что простите мое невежество ...

Я пытаюсь сделать вызов API в базе данных FileMaker для запуска сценария. Я должен подтвердить подлинность сеанса, и я могу сделать это успешно. Я пытаюсь использовать сгенерированный токен в той же функции twilio. Возможно ли это?

exports.handler = function (context, event, callback) {

    var got = require('got');
    var requestPayload = {
  "fmDataSource": [
    {
      "database": "fm_data_api",
      "username": "testuser",
      "password": "testpass"
    }
  ]
};

    var username = "testuser";
    var password = "testpass";
    var auth = "Basic " + new Buffer(username + ":" + password).toString("base64");

    got.post('https://api.website.com/database/sessions',
        { body: JSON.stringify(requestPayload),
            headers: {
                'Authorization': auth,
                'Content-Type': 'application/json',

        },

    }).then(function(response) {
        console.log(response.body);
        callback(null, response.body);


    var fmScript = {
  "fieldData": [
    {
      "script": "fm_twilio_api",
      "script.param": "random information from twilio studio",

    }
  ]
};
    var token = response.token;


    got.post('https://api.website.com/database/records',
        { body: JSON.stringify(fmScript),
            headers: {
                'Authorization': 'Bearer ' + token,
                'Content-Type': 'application/json',

        },

    }).then(function(response) {
        console.log(response.body);
        callback(null, response.body);

    }).catch(function(error) {
        callback(error);
    });

});
};

Ниже показано, что возвращает первая половина приведенного выше кода

{"response":{"token":"insertTokenHere"},"messages":[{"code":"0","message":"OK"}]}.

Я также попытался установить переменную в моем Twilio Studio Flow, используя ответ от функция

{{widgets.api_function.parsed.response.token}}

, но она всегда пуста. Я действительно хотел бы выполнить это в одной функции, если это возможно, и не нужно go возвращаться в поток.

Как бы я использовал вновь сгенерированный токен в той же функции Twilio?

...