我在facebook messenger中为推送通知构建服务。我的nodejs应用程序在我的localhost中工作正常,但在AWS中没有。
我使用请求模块(npm)发送消息。
我的服务可以获取参数,但不会发送HTTP POST。
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();
var request = require('request')
api.get('hello', function (req) {
var token = req.queryString.token;
var sender = req.queryString.sender;
var msg = req.queryString.msg;
messageData = {};
messageData.text = msg;
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: { access_token: token },
method: 'POST',
json: {
recipient: { id: sender },
message: messageData,
}
}, function (error, response, body) {
if (error) {
return 'Error sending message: ' + error;
} else if (response.body.error) {
return 'Error: ' + response.body.error;
}
});
return sender + ' ' + messageData.text ;
})
module.exports = api;
答案 0 :(得分:2)
您需要从API构建器方法处理程序返回一个用于异步操作的promise。您可以使用null
或got
之类的内容将HTTP请求转换为Promise,或者只使用简单的承诺包装,例如minimal-request-promise
请参阅指南中有关如何使用Claudia的外部服务的第4项:https://claudiajs.com/tutorials/external-services.html