代码之家  ›  专栏  ›  技术社区  ›  Venkat

指向Microsoft Bot的Directline API消息

  •  0
  • Venkat  · 技术社区  · 6 年前

    我已经使用LUIS在azure服务中创建了bot,它用作chatbot,可以使用对话框创建对话。

    在某个时候,我尝试使用 直连API 3.0 ,我正在使用邮递员将消息发送到bot。

    https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-send-activity?view=azure-bot-service-4.0

    我能够发送消息到机器人的对话,下面是我从邮递员发送的消息,并得到了成功的回应图像。

    enter image description here

    但我的问题是,消息发送后,机器人会尝试分析,即使它不是用户消息。Bot开始从默认的消息处理程序发送消息,如下所示,

    enter image description here

    即使在成功发送消息之后,我的bot也会触发默认的消息处理程序,这只会发生在用户消息中,而不会发生在bot消息中。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ed Boykin    6 年前

    您不应该以“message”类型发送消息,而应该以“event”类型发送消息。 这样,MessagesController会将其视为事件的ActivityType而不是Message,并且您可以按照自己的意愿进行处理,而不会破坏实际的消息处理 如果您想发送不同类型的事件以使其更简单,那么您可以通过在json中为“name”字段提供一个值来“命名”您的事件。 第三,如果需要在消息中包含数据,那么可以在json的“value”字段中提供一个值。

    的github页面 standard webchat client 有一些关于发送事件的重要信息。它可能会对json有更多的了解。

    你可以阅读更多关于 'event' activity type here

    {
        "type": "event",
        "from": {
            "id": "user1"
        },
        "name": "theEvent",
        "value": "someDataMyBotNeeds"
    }