我正在使用Dialogflow集成在Google应用上开发动作。当使用公共请求调用在Dialogflow模拟器中进行测试时,我得到一个响应,即找到我传递的Uri,执行并返回响应。在Google模拟器上的操作中执行完全相同的操作会产生此错误。
{ Error: getaddrinfo ENOTFOUND abc.eu.auth0.com abc.eu.auth0.com:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'abc.eu.auth0.com',
host: 'abc.eu.auth0.com',
port: 443 }
代码看起来像这样
let options = {
uri: 'https://abc.eu.auth0.com/userinfo/',
headers: {
authorization: 'Bearer ' + _accessToken,
}
};
request.get(options, (error, response, body) => {
if (!error && response.statusCode === 200) {
// output error, body, response, do stuff
} else {
// do other stuff
}
});
request
是请求包。
所以问题是,Google模拟器/测试模式上的操作是否有任何限制? (在使用开发者帐户登录时,我在手机上与Google智能助理时遇到同样的错误。)
答案 0 :(得分:2)
模拟器没有任何限制 - 它只是与您的webhook后端交谈,并且不知道操作环境是什么。
如果您正在使用Dialogflow中的内置配送编辑器,或者您已部署到Firebase云功能,那么您需要检查您正在使用的计划。
默认为" spark"计划,这是免费的,但有限制,它无法访问谷歌以外的网络或网络服务。
你可以升级到" blaze"计划,允许网络访问,但要求您注册信用卡和收费使用。 然而,即使在大火计划中,也有一个他们不会为你收费的免费套餐。这个免费套餐通常足以在早期部署中进行试验,初始开发和使用。部署完成后,Google智能助理会提供云积分,这也可以抵消这一点。