Как получить URL с помощью функций Google Cloud?запрос? - PullRequest
0 голосов
/ 20 января 2019

Я использовал Google Apps Script с

var response = UrlFetchApp.fetch(url, params);

, чтобы получить ответ от API.К сожалению, это слишком много запросов и слишком много данных, которые мне нужно обработать с помощью Google Apps Script в Drive

Моя идея заключалась в том, чтобы переключиться на облачные функции Google и запрос, но он не работает.

const request = require('request');

const headers = {
    "Authorization" : "Basic " + Buffer.from('blabla').toString('base64')
};

const params = {
    "method":"GET",
    "headers":headers
};

exports.getCheckfrontBookings = (req, res) => {
  let url = 'https://fpronline.checkfront.com/api/3.0/item'

  request({url:url, qs:params}, function(err, response, body) {
    if(err) { console.log(err); return; }
    console.log("Get response: " + response.statusCode);
  });

1 Ответ

0 голосов
/ 20 января 2019

request изначально поддерживает интерфейсы обратного вызова, но не возвращает обещание, что вы должны делать в облачной функции.

Вы можете использовать request-promise (https://github.com/request/request-promise) и rp(...) метод, который «возвращает обычное обещание Promise / A +, соответствующее обещанию», а затем выполняет что-то вроде:

const rp = require('request-promise');

exports.getCheckfrontBookings = (req, res) => {

  var options = {
    uri: 'https://fpronline.checkfront.com/api/3.0/item',
    headers: {
      Authorization: 'Basic ' + Buffer.from('blabla').toString('base64')
    },
    json: true // Automatically parses the JSON string in the response
  };

  rp(options)
    .then(response => {
      console.log('Get response: ' + response.statusCode);
      res.send('Success');
    })
    .catch(err => {
      // API call failed...
      res.status(500).send('Error': err);
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...