我正在尝试将Microsoft bot框架与whatsapp集成。
我已经有现有的与bot服务对话的bot(skype和webchat),并试图创建一个新的通信渠道。
如何建立这个新频道?
我已经安装了可以从whats应用程序发送接收消息的api,我计划在收到用户的消息时挂接我的bot服务。 但是我不知道如何使用我的机器人服务,因为它接受一个类Activity。
答案 0 :(得分:8)
使用自定义适配器和DirectLine API,connect a bot to additional channels有两种可能。
我更喜欢使用适配器,因为您将直接连接到提供大量灵活性的WhatsApp服务。但是,在某些情况下,您可以受益于使用连接到直线的代理服务。
最后,您可以使用任何喜欢的提供程序,只要它们提供API。例如Twilio,RingCentral,InfoBip,LivePerson之类的提供商。
我推荐的方法:自定义适配器
当前,BotBuilderCommunity中提供了适用于WhatsApp的以下适配器。
有关如何构建自定义适配器的示例,请参见BotBuilderCommunity。 (C#,Javascript)
替代方法:连接到DirectLine的代理服务
可以在以下位置找到有关如何构建代理服务的示例:C#,Javascript。
答案 1 :(得分:0)
您可以尝试使用文档中所述的Direct Line!
您可以启用自己的客户端应用程序与您的客户端进行通信 直线通道使用机器人。
答案 2 :(得分:0)
您可以尝试使用twilio whatsapp API,我已经这样做了。 Link
答案 3 :(得分:0)
我使用了直线通道。需要构建中继应用程序以在whatsapp和Microsoft直线之间建立接口。
答案 4 :(得分:0)
您可以使用Twilio Channel并使用Azure Functions连接。 这是Azure Function的代码-
[FunctionName("Function1")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log)
{
var dataResponse = await req.Content.ReadAsStringAsync();
var values = dataResponse .Split('&')
.Select(value => value.Split('='))
.ToDictionary(pair => Uri.UnescapeDataString(pair[0]).Replace("+", " "),
pair => Uri.UnescapeDataString(pair[1]).Replace("+", " "));
var whatsAppMsg = values["Body"].ToString();
var qnaAnswer= await evaluateMessage(whatsAppMsg);
var response = new MessagingResponse().Message(qnaAnswer);
var twiml = response.ToString();
twiml = twiml.Replace("utf-16", "utf-8");
return new HttpResponseMessage
{
Content = new StringContent(twiml, Encoding.UTF8, "application/xml")
};
}
有关连接到WhatsApp Bot QnA制造商的更多信息-Create WhatsApp Bot。获取源代码here。