对Firebase云函数发出API请求

对Firebase云函数发出API请求,firebase,google-cloud-functions,actions-on-google,dialogflow-es,Firebase,Google Cloud Functions,Actions On Google,Dialogflow Es,我正在尝试使用OpenWeatherAPI对谷歌项目进行操作。我通过Dialogflow使用Firebase云函数。如何发出API请求以从OpenWeatherAPI获取数据 request.get('http://api.openweathermap.org/data/2.5/uvi?appid=XXX&lat=37.75&lon=-122.37', function (error, response, body) { console.log('error:

我正在尝试使用OpenWeatherAPI对谷歌项目进行操作。我通过Dialogflow使用Firebase云函数。如何发出API请求以从OpenWeatherAPI获取数据

request.get('http://api.openweathermap.org/data/2.5/uvi?appid=XXX&lat=37.75&lon=-122.37', function (error, response, body) {
          console.log('error:', error); 
          console.log('statusCode:', response && response.statusCode); 
          console.log('body:', body); 
        });
以下是Firebase日志:

statusCode: undefined

body: undefined

error: { Error: getaddrinfo ENOTFOUND api.openweathermap.org api.openweathermap.org:80
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'api.openweathermap.org',
host: 'api.openweathermap.org',
port: 80 }

默认情况下,Firebase云函数和Dialogflow编辑器使用Firebase Spark计划中的项目。这是完全免费的,但也有一些限制,包括谷歌服务之外的网络访问


为了访问openweathermap.org,您可能需要。我建议使用Blaze计划,即每月按一定的使用量付费。您需要使用信用卡注册,但开发使用级别(甚至是适度的生产使用级别)应足以让您保持免费级别。

您的Firebase项目是否在免费计划中?还是按付费计划?只有在付费计划中才允许调用第三方API,以防止滥用。看见