我使用了 Google Apps Script
var response = UrlFetchApp.fetch(url, params);
从 api 获得响应。遗憾的是,我需要在云端硬盘中使用 Google Apps 脚本处理太多请求和太多数据
我现在的想法是切换到 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);
});
最佳答案
request
原生支持回调接口(interface)但不返回 promise ,这是您必须在 Cloud Function 中执行的操作。
您可以使用 request-promise
( https://github.com/request/request-promise ) 和 rp(...)
方法,它“返回一个常规的 Promises/A+ 兼容 promise ”,然后做类似的事情:
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);
});
};
关于node.js - 如何使用 Google Cloud 函数获取 URL?要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54275148/