如何从api(https://jsonplaceholder.typicode.com/posts/1)获取数据并如何使用实现在操作中显示?
我的代码:
function apiCall(agent){
https.get('https://jsonplaceholder.typicode.com/posts/1', (resp) => {
let data = '';
// A chunk of data has been recieved.
resp.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received. Print out the result.
resp.on('end', () => {
console.log(JSON.parse(data).explanation);
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});
}
我得到一个错误:
在函数中:getaddrinfo ENOTFOUND jsonplaceholder.typicode.com jsonplaceholder.typicode.com:443
答案 0 :(得分:3)
我已经测试过API服务器,它运作良好LINK
原因
尝试从Cloud函数访问API服务器时遇到了相同的问题。那时计费不是解决方法,因为我已经启用了计费。
解决方案
Google Cloud功能不允许您在没有计费的情况下访问出站互联网访问。您只需启用计费功能 通过提供您的ATM详细信息来为项目服务 层。
您可以使用Google Cloud Function Simulator +任何本地隧道
例如ngrok或serveo.net,然后将该链接添加到您的fulfillment webhook url
很好的解决方案中,以达到开发目的。
答案 1 :(得分:1)
在Google GitHub上的Actions上托管了一个Developer Relations Quote sample,该演示了如何从实现Webhooks进行外部API调用。
如样本的自述文件中所述,如果您使用Cloud Functions for Firebase来部署您的履约,则需要升级计划,因为Firebase的免费层不支持进行出站网络调用。
答案 2 :(得分:0)
您想在此页面中收到什么? 我复制了您的代码并更改了
console.log(JSON.parse(data).explanation);
到
console.log(data);
它返回给我:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
这就是为什么当我单击您的链接时会得到提示。
除了您不存在“说明”字段之外,我的代码没有错误。
由于我不明白该消息的意思,因此您的网站需要验证吗?