Bot Framework 核心概念:开始一个对话

来源:互联网 发布:java.awt.color 使用 编辑:程序博客网 时间:2024/05/14 22:35

原文地址:https://docs.botframework.com/en-us/core-concepts/conversation/#navtitle

对话可以使很多种形式的。比如你的机器人可以和一个单独的用户进行私人的对话,或者同多个用户包括其他的机器人进行一个小组的对话。多数的频道支持私人的对话但是并不是所有的频道支持小组对话。为了确认某个频道是否支持小组对话,查看频道的文档。

大多数时间,用户会先开始对话。如果用户开始了对话,你的机器人简单地回复用户发过来的信息(查看 Sending and receiving messages)。但是有的时候可能你的机器人要先开始一个对话。比如如果你的机器人了解当前用户的兴趣爱好,并且它学习了一个新的跟用户某一个兴趣有关的事件或者文章,那么你的机器人可以先开始跟用户的对话,让用户知道这篇文章。

要开始一段对话,你的机器人需要知道它在当前频道的账户信息和用户的账户信息。如果你想要开始一段对话,确保你 cache 了账户信息和其他任何相关的信息,比如用户的预设/首选项(preferences)和区域设置(locale)(所有信息就会使用用户的语言了)。

要开始一段对话,向 https://api.botframework.com/v3/conversations 发送一个 POST 请求。请求的 body 必须要包含一个Conversation 对象。你必须指明你的机器人的账户信息和想要加入这个对话的用户的账户信息。为了确认当前频道是否支持小组对话,和允许加入对话的最大用户数,查看频道的文档。

下边的代码显示了一个开始一段对话的请求。

POST https://api.botframework.com/v3/conversations HTTP/1.1Authorization: Bearer eyJhbGciOiJIUzI1Ni...Content-Type: application/json{    "bot": {        "id": "12345678",        "name": "bot's name"    },    "isGroup": false,    "members": [        {            "id": "1234abcd",            "name": "recipient's name"        }    ],    "topicName": "News Alert"}

如果 Connector 能够同指定的用户建立对话,返回的信息应该包含一个标识这个回话的 ID。请确保你获得了这个 ID 因为在你给用户发送信息的时候要用到它。下边的代码显示了包含一个对话 ID 的返回信息。

{    "id": "abcd1234"}
当开始了一段对话之后,你的机器人通过向 https://api.botframework.com/v3/conversations/abcd1234/activities 想用户发送一个信息。关于发送和接受信息的详细内容,请查看Sending and receiving messages。

关于如何使用 .NET 或者 Node SDK 开始一段对话,请查看 Alarm Bot 和 Proactive Messaging。

0 0
原创粉丝点击