我已经使用Bot Framework创建了一个Node.js机器人并将其部署到Azure中。
默认情况下,Azure机器人msbotnew1
的机器人消息传递端点将为
https://msbotnew1.azurewebsites.net/api/messages
我可以使用Web Chat
与漫游器进行通信,也可以将传出的Whatsapp消息从Twilio发送到我的手机号码。
用于设置Azure消息传递终结点的代码:
var restify = require('restify');
var builder = require('botbuilder');
var botbuilder_azure = require("botbuilder-azure");
var request = require("request");
var twilio = require("twilio");
var fs = require('fs');
// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword,
openIdMetadata: process.env.BotOpenIdMetadata
});
// Listen for messages from users
server.post('/api/messages', connector.listen());
用于从Twilio向手机号码发送传出WhatsApp消息的代码:
var twilio = require("twilio");
const accountSid = process.env.accountSid;
const authToken = process.env.authToken;
const client = require('twilio')(accountSid, authToken);
client.messages
.create({
body: 'Hello there!',
from: 'whatsapp:+14155238886',
to: process.env.whatsappToNumber
})
.then(message => console.log(message.sid))
.done();
但是对于传入消息,必须在此页面中设置入站端点URL:
https://www.twilio.com/console/sms/whatsapp/sandbox
传入端点在上一页中设置如下:
WHEN A MESSAGE COMES IN
:https://msbotnew1.azurewebsites.net/api/messages
当从whatsapp发送短信时,我在Bot应用程序输出中收到以下错误:
ERROR: ChatConnector: receive - invalid request data received.
我尝试了各种无效的端点URL组合,例如https://msbotnew1.azurewebsites.net/sms
,https://msbotnew1.azurewebsites.net/api/messages/sms
https://msbotnew1.azurewebsites.net/api/sms
如何获取正确的终结点URL,以使用Twilio将来自Whatsapp手机的传入消息发送到Azure node.js机器人?
答案 0 :(得分:0)
不幸的是,由于Twilio尚未完全开发其Whatapps通道,因此您无法将Whatapps连接到TwiML App,该TwiML App将消息正确路由到Microsoft BotFramework。但是,Microsoft BotFramework当前正在努力将Whatsapp添加为官方频道,这意味着您可以添加频道而不必通过Twilio。该GitHub Issue正在跟踪Whatsapp功能请求。
如果您不能等待Microsoft将Whatsapp添加为渠道,我建议您使用Twilio节点包和DirectLine将消息从Whatsapp路由到您的机器人。
有关如何为BotFramework配置Twilio的更多详细信息,请查看文档中的分步操作guide。
希望这会有所帮助!