Может кто-нибудь помочь мне преобразовать этот запрос Curl в node.js - PullRequest
0 голосов
/ 20 ноября 2018
curl 'https://api.twilio.com/2010-04-01/Accounts/AC7f9cc91207db898bb0ddee8e09d707b5/Calls.json' 

X POST \
data-urlencode 'To=+971566820680' \
data-urlencode 'From=+971556309806' \
data-urlencode 'Url=https://api.twilio.com/2010-04-01/Accounts/AC7f9cc91207db898bb0ddee8e09d707b5/Calls.json' \

data-urlencode 'ApplicationSid=APae94ada54ea05d0dabde55dc7a346178' \
data-urlencode 'Method=POST' \
-u AC7f9cc91207db898bb0ddee8e09d707b5:9b96d9f573a7bbcadce5fa88eced3b66

Выше приведен код, который я хочу преобразовать в NodeJS

В идеале я хочу иметь функцию Azure (написанную на NodeJS)

1 Ответ

0 голосов
/ 20 ноября 2018

Если вы проверяете эту ссылку - она ​​позволяет вам конвертировать любой запрос curl в код для нескольких языков.В результате мне удалось придумать это - я внес несколько изменений.Примечание: вам нужно установить request в виде модуля npm:

const request = require('request');

const options = {
    url: 'https://api.twilio.com/2010-04-01/Accounts/AC7f9cc91207db898bb0ddee8e09d707b5/Calls.json',
    method: 'POST',
    auth: {
        'user': 'AC7f9cc91207db898bb0ddee8e09d707b5',
        'pass': '9b96d9f573a7bbcadce5fa88eced3b66'
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

Чтобы преобразовать этот код во что-то, что может использовать функция Azure, вам нужно настроитьконтекстное возражение, которое используется для обратного вызова.Это для функции Azure 2.0.Сначала вам нужно импортировать необходимый модуль npm (и установить его в области Kudu приложения-функции Azure).Функция-заглушка, которую они вам дадут, даст вам функцию-заглушку module.exports.То, что я сделал ниже, заполняет код из вашего запроса curl и применяет его к функции Azure.Внизу вы увидите context.res.context.res представляет ответ, который вызовет эта функция Azure через HTTP.Я заполнил тело ответом на запрос API, который вы запросили.

const rp = require('request-promise');
module.exports = async function (context, req) {

  const options = {
    url: 'https://api.twilio.com/2010-04-01/Accounts/AC7f9cc91207db898bb0ddee8e09d707b5/Calls.json',
    method: 'POST',
    auth: {
      'user': 'AC7f9cc91207db898bb0ddee8e09d707b5',
      'pass': '9b96d9f573a7bbcadce5fa88eced3b66'
    }
  };

  const response = await rp(options);

  context.res = {
    status: 200,
    body: response
  };
};
...