NodeJS 如何获取一个URL与谷歌云功能?请求?

xe55xuns  于 2023-03-17  发布在  Node.js
关注(0)|答案(1)|浏览(117)

我将Google Apps脚本用于

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

从API获得响应。可悲的是,它的请求太多,数据太多,我需要用谷歌应用程序脚本在驱动器中处理
我的想法是现在切换到谷歌云功能和请求,但它不工作。

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);
  });
velaa5lx

velaa5lx1#

request本机支持回调接口,但不返回承诺,这是您必须在云函数中执行的操作。
您可以使用request-promisehttps://github.com/request/request-promise)和rp(...)方法(该方法“返回符合常规承诺/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);
    });
};

相关问题