直接向 Microsoft Bot 发送 API 消息

Directline API message to Microsoft Bot

我使用 LUIS 在 Azure 服务中创建了机器人,它用作聊天机器人,可以使用对话框创建对话。

在某些时候,我正在尝试使用 Direct Line API 3.0 将消息推送到聊天机器人,我正在使用 Postman 将消息发送到聊天机器人。

我按照此页面的说明操作,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

我可以作为 bot 向对话发送消息,下面是我从 Postman 发送消息并获得成功响应的图像。

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

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

此外,我已经检查过网络聊天频道,它不会触发此默认消息处理程序。这仅在 DirectLine API 中发生,任何人都可以帮助我。

不应将消息作为 "message" 类型发送,而应将其作为 "event" 类型发送。 这样,您的 MessagesController 会将其视为 Event 而不是 Message 的 ActivityType,您可以根据需要进行处理,而无需对实际消息处理进行细化处理 如果您想发送不同类型的事件以使其更容易,那么您可以通过在 json 中为 'name' 字段提供一个值来 'name' 您的事件。 第三,如果您需要在消息中包含数据,您可以在 json.

的 'value' 字段中提供一个值

standard webchat client 的 github 页面有一些关于发送事件的重要信息。它可能会更清楚地说明 json.

您可以阅读有关 'event' activity type here

的更多信息

您的消息 json 看起来更像这样:

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