【问题标题】:Microsoft Bot Integration with Whatsapp [closed]Microsoft Bot 与 Whatsapp 的集成 [关闭]
【发布时间】:2019-02-06 10:18:01
【问题描述】:

我正在尝试将Microsoft Bot Framework 与 WhatsApp 集成。

我已经有与机器人服务对话的现有机器人(Skype 和网络聊天),并试图创建一个新的沟通渠道。

如何构建这个新频道?

我已经有可以从 WhatsApp 发送接收消息的 API,我计划在收到来自用户的消息时挂钩我的机器人服务,但我不知道如何使用我的机器人服务,因为它接受一个类Activity

【问题讨论】:

  • MS Botframework 不支持 Whatsapp。您可以尝试使用 directLine 作为 Whatsapp 和 BotFramework 之间的中介。
  • 如何从什么应用发送接收消息?
  • 我也想知道你是怎么和whatsapp沟通的

标签: botframework bots whatsapp


【解决方案1】:

您可以使用 Twilio 频道并使用 Azure Functions 进行连接。 这是 Azure 函数的代码 -

[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")
        };
    }
  • evaluate message 是 QnA Answer 的调用方法。它也可以是 LUIS 实现。

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

【讨论】:

  • Borderline-spam link answer 请小心链接到您自己在不同网站上的内容,您不想成为垃圾邮件发送者。您应该在此处包含大部分内容,并且仅将链接用作参考。
  • 我是 StackOverflow 的新手,以后会更加小心。谢谢。编辑了包含更多信息的内容。
【解决方案2】:

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

我更喜欢使用适配器,因为您可以直接连接到 WhatsApp 服务,这提供了很大的灵活性。但是在某些情况下,您可以从使用连接到 Direct Line 的代理服务中受益。

最后,您可以使用任何您喜欢的提供商,只要他们提供 API。例如 Twilio、RingCentral、InfoBip、LivePerson 等提供商。

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

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

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

可以在 BotBuilderCommunity 上找到如何构建自定义适配器的示例。 (C#, Javascript)


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

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

可以在此处找到如何构建代理服务的示例:C#Javascript

【讨论】:

    【解决方案3】:

    您可以尝试使用Twilio Channel,然后使用Twilio API for WhatsApp

    【讨论】:

    • @KyleMit 使用 Twilio 频道而不是仅仅连接 WhatsApp 的 twilio API 是否有好处?因为我在没有通道的情况下连接了API
    • 哦,抱歉,我的编辑可能有误。我试图澄清获取 Twilio API 的必要步骤,并假设您必须通过 Twilio 通道进行路由。如果您可以记录更多关于您如何设置和配置 Twilio API for What's App 以使用 MS Bot 框架,我很乐意为您提供一些代表
    • @KyleMit,根据我的经验,它是不需要的,我所做的是在我们的代码中配置一个端点来连接whatsapp API,然后直接调用
    【解决方案4】:

    我使用的是直线频道。需要构建一个中继应用程序以在 whatsapp 和 microsoft directline 之间进行接口。

    【讨论】:

      【解决方案5】:

      您可以尝试使用文档中所述的Direct Line

      您可以启用自己的客户端应用程序与您的 bot 通过使用 Direct Line 频道。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-02
        • 1970-01-01
        • 2017-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        相关资源
        最近更新 更多