您好,我一直在尝试在我的仪表板上实现 OneSignal API,我想知道是否可以在 Express 服务器内进行 API 外部调用。
这是一个例子:
var sendNotification = function(data) {
var headers = {
"Content-Type": "application/json; charset=utf-8",
"Authorization": "Basic NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj"
};
var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers
};
var https = require('https');
var req = https.request(options, function(res) {
res.on('data', function(data) {
console.log("Response:");
console.log(JSON.parse(data));
});
});
req.on('error', function(e) {
console.log("ERROR:");
console.log(e);
});
req.write(JSON.stringify(data));
req.end();
};
这是应用程序路线
app.post('/path', function(req, res){
var message = {
app_id: "5eb5a37e-b458-11e3-ac11-000c2940e62c",
contents: {"en": "English Message"},
included_segments: ["All"]
};
sendNotification(message);
});
谢谢!
原文由 enrico_alvarenga 发布,翻译遵循 CC BY-SA 4.0 许可协议
当然,您可以使用
http.request()
从 node.js 应用程序联系任何外部服务器,就像您正在展示的那样,或者构建在其之上的更高级别的模块之一,例如 请求模块。这是请求模块主页中的一个简单示例:
或者,使用承诺:
编辑 2020 年 1 月 - request() 模块处于维护模式
仅供参考,
request
模块及其衍生物,如request-promise
现在处于维护模式,不会积极开发以添加新功能。您可以在 此处 阅读有关推理的更多信息。 此表 中有一个备选方案列表,并对每个备选方案进行了一些讨论。我一直在使用got()
我自己,它是从一开始就使用 promises 构建的,并且易于使用。