【发布时间】:2018-11-13 15:47:34
【问题描述】:
我无法从机器人获得响应并将其附加到 MS Botframework 提供的网络聊天中。
这是我到目前为止所做的:
在https://dev.botframework.com/ 上创建了一个机器人(无需迁移)
集成网络聊天和直线
创建了一个 flask 监听服务器,并使用 ngrok
生成了 HTTPS
将创建的服务器地址作为机器人的消息传递端点
- 使用以下代码生成 HTML 页面(在本地运行,无需任何服务器)
<html> <head> <link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" /> </head> <body> <div id="bot"/> <script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script> <script> BotChat.App({ directLine: { secret: 'direct_line_secret_key' }, user: { id: 'userid' }, bot: { id: 'botid' }, resize: 'detect' }, document.getElementById("bot")); </script> </body> </html>
现在我能够以用户身份从 UI 发送消息,并能够在烧瓶侦听器服务器中捕获它。
但是我如何从服务器回复,以便消息来自机器人并附加到用户界面?
我错过了什么吗?
我已尝试通过https://directline.botframework.com/v3/directline/conversations/{convoId}/activities 发布请求,但该请求再次仅返回到服务器并且不会附加到网络聊天。
data = json.dumps({"type": "message","from":{"id":"botid"},"text": "Hii!"})
requests.post('https://directline.botframework.com/v3/directline/conversations/' + r['conversation']['id'] + '/activities',
headers={"Authorization": "Bearer " + "secret_key", "Content-Type": "application/json", "Content-Length": "512"},data=data
注意:我仅将 botframework 用于网络聊天 UI,没有其他用途。
编辑 1:
从网络聊天 ui 发送这个
http://bcebb07a.ngrok.io/webhook' [POST]> ****************************************************** ************************ {'type': 'message', 'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002', '时间戳':'2018-06-05T06:51:45.3174659Z','serviceUrl': 'https://directline.botframework.com/', 'channelId': '直连', '来自':{'id':'sid'},'对话':{'id': '5DvIa5ImiPF4G6WnGlPYyY'},'收件人':{'id': 'one_assist@CrbpWod1mw8','name':'OneAssist'},'textFormat':'plain', 'locale': 'en-US', 'text': '你好', 'channelData': {'clientActivityId': '1528180308547.7414264322396316.5'}} 5DvIa5ImiPF4G6WnGlPYyY
################################################# ################# {'messages': [{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000000','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:32:50.9651813Z', '来自':'sid','文本':'你好','channelData':{'clientActivityId': '1528180308547.7414264322396316.0'},'图片':[],'附件':[]}, {'id':'5DvIa5ImiPF4G6WnGlPYyY|0000001','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:47:14.1602925Z', '来自':'sid','文本':'你好吗','channelData': {'clientActivityId':'1528180308547.7414264322396316.3'},'图像': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002', 'conversationId':'5DvIa5ImiPF4G6WnGlPYyY','创建': '2018-06-05T06:51:45.3174659Z', 'from': 'sid', 'text': '你好怎么样 你','channelData':{'clientActivityId': '1528180308547.7414264322396316.5'},'图片':[],'附件': []}], '水印': '2'}
{“错误”:{ “代码”:“机器人错误”, “消息”:“发送活动失败:机器人超时”},“httpStatusCode”:504 } 127.0.0.1 - - [05/Jun/2018 12:22:12]“POST /webhook HTTP/1.1”200 - ****************************************************** ************************ http://bcebb07a.ngrok.io/webhook' [POST]> ****************************************************** ************************ {'type': 'conversationUpdate', 'id': 'D3XJ6CAaVsc', 'timestamp': '2018-06-05T06:51:56.7508828Z','serviceUrl': 'https://directline.botframework.com/', 'channelId': '直连', '来自':{'id':'5DvIa5ImiPF4G6WnGlPYyY'},'对话':{'id': '5DvIa5ImiPF4G6WnGlPYyY'},'收件人':{'id': 'one_assist@CrbpWod1mw8','名称':'OneAssist'},'membersAdded': [{'id': 'botid'}]} 5DvIa5ImiPF4G6WnGlPYyY
################################################# ################# {'messages': [{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000000','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:32:50.9651813Z', '来自':'sid','文本':'你好','channelData':{'clientActivityId': '1528180308547.7414264322396316.0'},'图片':[],'附件':[]}, {'id':'5DvIa5ImiPF4G6WnGlPYyY|0000001','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:47:14.1602925Z', '来自':'sid','文本':'你好吗','channelData': {'clientActivityId':'1528180308547.7414264322396316.3'},'图像': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002', 'conversationId':'5DvIa5ImiPF4G6WnGlPYyY','创建': '2018-06-05T06:51:45.3174659Z', 'from': 'sid', 'text': '你好怎么样 你','channelData':{'clientActivityId': '1528180308547.7414264322396316.5'},'图片':[],'附件': []}], '水印': '2'}
{“错误”:{ “代码”:“机器人错误”, “消息”:“发送活动失败:机器人超时”},“httpStatusCode”:504 } 127.0.0.1 - - [05/Jun/2018 12:22:32] “POST /webhook HTTP/1.1”200 -
#从服务器代码发送这个 ****************************************************** ************************ http://bcebb07a.ngrok.io/webhook' [POST]> ****************************************************** ************************ {'type': 'message', 'id': '5DvIa5ImiPF4G6WnGlPYyY|0000003', '时间戳':'2018-06-05T06:52:16.6925987Z','serviceUrl': 'https://directline.botframework.com/', 'channelId': '直连', '来自':{'id':'botid'},'对话':{'id': '5DvIa5ImiPF4G6WnGlPYyY'},'收件人':{'id': 'one_assist@CrbpWod1mw8', 'name': 'OneAssist'}, 'text': '嗨!'} 5DvIa5ImiPF4G6WnGlPYyY
################################################# ################# {'messages': [{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000000','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:32:50.9651813Z', '来自':'sid','文本':'你好','channelData':{'clientActivityId': '1528180308547.7414264322396316.0'},'图片':[],'附件':[]}, {'id':'5DvIa5ImiPF4G6WnGlPYyY|0000001','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:47:14.1602925Z', '来自':'sid','文本':'你好吗','channelData': {'clientActivityId':'1528180308547.7414264322396316.3'},'图像': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002', 'conversationId':'5DvIa5ImiPF4G6WnGlPYyY','创建': '2018-06-05T06:51:45.3174659Z', 'from': 'sid', 'text': '你好怎么样 你','channelData':{'clientActivityId': '1528180308547.7414264322396316.5'},'图片':[],'附件':[]}, {'id':'5DvIa5ImiPF4G6WnGlPYyY|0000003','conversationId': '5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:52:16.6925987Z', '来自':'botid','文本':'嗨!','图像':[],'附件':[]}], '水印':'3'} https://directline.botframework.com/v3/directline/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities/
https://directline.botframework.com/v3/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities { “错误”: { “代码”:“机器人错误”, “消息”:“发送活动失败:机器人超时”},“httpStatusCode”:504 }
【问题讨论】:
-
您的机器人在 Azure 门户的“网络聊天测试”选项中工作正常吗?
-
@AnitaGeorge 不,我能够在后端收到消息但无法将其发送回 UI
-
您发送到网络聊天的活动是什么样的?
-
您有用于实现机器人框架的存储库吗?网络聊天本身通过获取轮询请求或创建聊天窗口时打开的流与机器人进行通信。更多信息可以在here找到。实现这些端点之一应该有助于解决这个问题。但是,如果您提供有关您的机器人的更多信息,会更容易回答。
-
@JasonSowers
data = json.dumps({"type": "message","from":{"id":"botid"},"text": "Hii!"})。问题中也更新了
标签: botframework chatbot direct-line-botframework web-chat