如何从 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
我已经测试了API服务器,它运行良好 链接
原因我在
尝试从云功能访问 API 服务器时遇到了同样的问题。那一次计费不是修复程序,因为我已经启用了计费。
解决 方案
-
Google Cloud功能不允许您在没有计费的情况下访问出站互联网访问。您只需启用结算功能 通过提供您的ATM详细信息为您的项目,不用担心它是免费的 层。
-
您可以使用谷歌云功能模拟器+任何本地隧道 像 ngrok 或 serveo.net 然后将该链接添加到您的
fulfillment webhook url
其用于开发目的的良好解决方案。
Google GitHub 上的操作上托管了一个开发人员关系报价示例,该示例演示了如何从履行 Webhook 进行外部 API 调用。
如示例的自述文件中所述,如果您使用 Cloud Functions for Firebase 来部署您的履行,则需要升级您的计划,因为 Firebase 的免费套餐不支持进行出站网络调用。
你想在这个页面收到什么? 我复制了您的代码并更改了
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 suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto"
}
这就是为什么当我点击你的链接时我得到。
我的代码没有错误,除了"解释"字段对我来说不存在。
由于我不明白消息在说什么,您的网站是否需要一些身份验证或其他东西?