Microsoft Bot与Whatsapp的集成

时间:2018-08-31 11:27:16

标签: botframework bots whatsapp

我正在尝试将Microsoft bot框架与whatsapp集成。

我已经有现有的与bot服务对话的bot(skype和webchat),并试图创建一个新的通信渠道。

如何建立这个新频道?

我已经安装了可以从whats应用程序发送接收消息的api,我计划在收到用户的消息时挂接我的bot服务。 但是我不知道如何使用我的机器人服务,因为它接受一个类Activity。

5 个答案:

答案 0 :(得分:8)

使用自定义适配器和DirectLine API,connect a bot to additional channels有两种可能。

我更喜欢使用适配器,因为您将直接连接到提供大量灵活性的WhatsApp服务。但是,在某些情况下,您可以受益于使用连接到直线的代理服务。

最后,您可以使用任何喜欢的提供程序,只要它们提供API。例如Twilio,RingCentral,InfoBip,LivePerson之类的提供商。

我推荐的方法:自定义适配器

  • Bot使用bot中的额外端点直接连接到WhatsApp服务
  • 编写良好的适配器将所有Bot Framework SDK活动转换为WhatsApp服务,反之亦然。 (example)。
  • 多个适配器可以与同一个机器人项目一起使用
  • 适配器可以为通道提供特定的帮助程序功能,可以从您的bot项目中调用它。 (example

当前,BotBuilderCommunity中提供了适用于WhatsApp的以下适配器。

有关如何构建自定义适配器的示例,请参见BotBuilderCommunity。 (C#Javascript


替代方法:连接到DirectLine的代理服务

  • DirectLine API通过自托管的代理服务与WhatsApp服务进行通信
  • 代理服务可用于C#/ NodeJS / Python机器人,而不用于特定语言
  • 完善的代理服务将所有Bot Framework SDK活动转换为WhatsApp服务,反之亦然。

可以在以下位置找到有关如何构建代理服务的示例: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")
        };
    }
  • 其中评估消息是QnA Answer的调用方法。也可以是LUIS实现。

有关连接到WhatsApp Bot QnA制造商的更多信息-Create WhatsApp Bot。获取源代码here