在Firebase云功能中获取“getaddrinfo ENOTFOUND”错误[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我在Firebase云函数中编写了一个函数,用于向Onesignal API发布HTTP Post。我首先在Postman中测试我的请求并确保正文和标题正确且有效 - 它成功了。然后我继续使用request npm package创建一个帖子请求。这就是我到目前为止所拥有的

exports.addMessage = functions.https.onRequest((req, res) => {

const Requestbody = {
    included_segments: ['Subscribed Users'],
    app_id: 'XXXXXXXXXX',
    contents: { 'en': 'Test Notification Body' },
    headings: { 'en': 'Test Title' }
}
httpRequest.post({
    url: 'https://onesignal.com/api/v1/notifications',
    headers: {
        'Authorization': 'Some Token...',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(Requestbody)
},
    function (error, response, body) {
        if (error) { return res.status(500).send('Failed - ' + JSON.stringify(error)); }
        console.log('Onesignal Response: ' + JSON.stringify(response));
        return res.status(200).send('Success');
    });
}

每次调用此云函数时,request.post调用都会返回以下错误:getaddrinfo ENOTFOUND onesignal.com onesignal.com:443

但我提供的URL是我在Post Man中用来测试的一个URL。

node.js http-post google-cloud-functions
1个回答
0
投票

正如Doug Stevenson和LundinCast指出的那样,我的Firebase计划不支持对外部主机的调用。我需要升级到至少Flame计划来支持它。

© www.soinside.com 2019 - 2024. All rights reserved.