我使用Dialogflow为Google动作设置了Firebase函数,该函数使用API进行调用,node-fetch
但是在发出实际请求时遇到了问题。即使可以在浏览器中访问URL,也无法在运行函数时解析该URL。
错误:
{"message":"request to https://jsonplaceholder.typicode.com/users failed, reason: getaddrinfo ENOTFOUND jsonplaceholder.typicode.com jsonplaceholder.typicode.com:443","type":"system","errno":"ENOTFOUND","code":"ENOTFOUND"}
码:
import * as functions from 'firebase-functions';
import fetch from 'node-fetch';
export const fetchTrainTimetable = async (): Promise<object> => {
const path = `https://jsonplaceholder.typicode.com/users`
try {
const response = await fetch(path, {method: 'GET'});
return await response.json();
} catch (error) {
return error;
}
}
为了使用Firebase函数发出出站请求,我需要在请求中包括一些缺少的东西吗?路径是什么并不重要,我总是会遇到此错误。
问题是您在默认的“ spark”计划下使用Firebase Functions,该计划是免费的,但存在限制,使其无法访问Google之外的Web或网络服务。
您可以升级到“大火”计划,该计划允许网络访问,但需要注册信用卡和使用费。但是,即使在大火计划中,也有免费套餐,他们不会向您收费。这个免费层通常足以进行试验,初步开发和在早期部署下使用。部署完成后,Google助手会提供云信用额度,这也可以弥补这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句