提问人:bennygenel 提问时间:9/5/2017 最后编辑:p ubennygenel 更新时间:12/20/2022 访问量:4179
Firebase Cloud Functions 错误:连接 ECONNREFUSED
Firebase Cloud Functions Error: connect ECONNREFUSED
问:
我正在尝试使用Firebase Cloud Functions根据他们的API创建一个Kik Messenger机器人。我正在使用 Blaze Plan。我正在尝试回复我的机器人收到的消息。我可以在我的 API 上接收消息,但是当我尝试回复它们时,我收到错误。错误不是来自请求回调。我在 Firebase 控制台上看到错误。
错误:连接 ECONNREFUSED 72.14.246.44:443
在 Object.exports._errnoException (util.js:1018:11) 在 exports._exceptionWithHostPort (util.js:1041:20) 在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)
代码:“ECONNREFUSED”,errno:“ECONNREFUSED”,syscall:“连接”,地址:“72.14.246.44”,
端口:443
对Kik Messenger API的请求适用于本地和远程节点/快速应用程序。我尝试在Cloud Functions上使用kik-node,但它给出了相同的结果。到目前为止,我发现它解析到亚马逊并解析到谷歌托管。我认为他们也在使用 Firebase Cloud Functions 作为他们的 API。它们有没有被阻止的入站请求?这是我尝试过的示例代码。https://auth.kik.com
https://api.kik.com
exports.messagepost = functions.https.onRequest((req, res) => {
// Gives the error below
// {
// Error: connect ECONNREFUSED 72.14.246.44:443
// at Object.exports._errnoException (util.js:1018:11)
// at exports._exceptionWithHostPort (util.js:1041:20)
// at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)
// code: 'ECONNREFUSED',
// errno: 'ECONNREFUSED',
// syscall: 'connect',
// address: '72.14.246.44',
// port: 443
// }
request.post({
uri: 'https://api.kik.com/v1/message',
body: JSON.stringify({
foo: 'bar'
}),
json: true,
auth:{
user:'{API_USER}',
pass:'{API_KEY}'
},
headers: {
'Content-Type' : 'application/json'
}
}, (error, response) => {
if (error) console.error(error);
else console.log('Response: ', response.headers);
res.status(200).end('OK');
});
});
exports.messageget = functions.https.onRequest((req, res) => {
// Gives the error below
// {
// Error: connect ECONNREFUSED 72.14.246.44:443
// at Object.exports._errnoException (util.js:1018:11)
// at exports._exceptionWithHostPort (util.js:1041:20)
// at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)
// code: 'ECONNREFUSED',
// errno: 'ECONNREFUSED',
// syscall: 'connect',
// address: '72.14.246.44',
// port: 443
// }
request.get({
uri: 'https://api.kik.com/v1/message',
auth:{
user:'{API_USER}',
pass:'{API_KEY}'
}
}, (error, response) => {
if (error) console.error(error);
else console.log('Response: ', response.headers);
res.status(200).end('OK');
});
});
exports.verificationget = functions.https.onRequest((req, res) => {
// Runs with no errors
request.get({
uri: 'https://auth.kik.com/verification/v1/check',
qs: {
u: 'username',
d: 'hostname',
debug: true
},
body: JSON.stringify({ data: 'debugsigneddata' }),
headers: {
'Content-Type' : 'application/json' ,
'Content-Length' : JSON.stringify({ data: 'debugsigneddata' }).length
},
auth:{
user:'{API_USER}',
pass:'{API_KEY}'
}
}, (error, response) => {
if (error) console.error(error);
else console.log('Response: ', response.headers);
res.status(200).end('OK');
});
});
exports.verificationpost = functions.https.onRequest((req, res) => {
// Runs with no errors
request.post({
uri: 'https://auth.kik.com/verification/v1/check',
qs: {
u: 'username',
d: 'hostname',
debug: true
},
body: JSON.stringify({ data: 'debugsigneddata' }),
headers: {
'Content-Type' : 'application/json' ,
'Content-Length' : JSON.stringify({ data: 'debugsigneddata' }).length
},
auth:{
user:'{API_USER}',
pass:'{API_KEY}'
}
}, (error, response) => {
if (error) console.error(error);
else console.log('Response: ', response.headers);
res.status(200).end('OK');
});
});
答:
我在使用云函数而不是运行专用服务器实现 OAuth2 令牌交换时遇到了类似的问题。
这可能对 OP 没有帮助,但要在我的情况下修复此错误,我不得不将 https:// 协议添加到我的帖子 URL 中,因为它丢失了。
如果其他人遇到此问题,可能值得检查您的 POST url 是否正确编写。
评论