botframework - 如何将机器人的回复附加到网络聊天中?
问题描述
我无法从机器人获得响应并将其附加到 MS Botframework 提供的网络聊天中。
这是我到目前为止所做的:
在https://dev.botframework.com/上创建了一个机器人(没有迁移)
集成网络聊天和直线
创建了一个烧瓶监听服务器并使用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 发送消息,并能够在烧瓶侦听器服务器中捕获它。
但是我如何从服务器回复,以便消息来自机器人并附加到 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': '消息', ' id': '5DvIa5ImiPF4G6WnGlPYyY|0000002', 'timestamp': '2018-06-05T06:51:45.3174659Z', 'serviceUrl': ' https://directline.botframework.com/ ', 'channelId': 'directline' ,'来自':{'id':'sid'},'对话':{'id':'5DvIa5ImiPF4G6WnGlPYyY'},'收件人':{'id':'one_assist@CrbpWod1mw8','名称':'OneAssist '}, 'textFormat': 'plain', 'locale': 'en-US', 'text': 'hello how are you' , 'channelData': {'clientActivityId':'1528180308547.7414264322396316.5'}} 5DvIa5ImiPF4G6WnGlPYyY
################################################# ################# {'messages': [{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000000','conversationId':'5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:32:50.9651813Z','来自':'sid','text':'hello','channel' : {'clientActivityId': '1528180308547.7414264322396316.0'}, '图片': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000001', 'conversationId': '5DvIa5ImiPF4YGlG6Wn' :'2018-06-05T06:47:14.1602925Z','来自':'sid','text':'你好吗','channelData':{'clientActivityId':'1528180308547.7414264322396316.3'},'图像':[],'附件':[]},{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000002','conversationId':'5DvIa5ImiPF4G6WnGlPYyY','created':'2018-06-05T06:51:45.3174659Z','from':'sid','text':'你好','channelData':{'clientActivityId ':'1528180308547.7414264322396316.5'},'图片':[],'附件':[]}],'水印':'2'}
{“错误”:{“代码”:“BotError”,“消息”:“发送活动失败:机器人超时”},“httpStatusCode”:504 } 127.0.0.1 - - [05/Jun/2018 12:22 :12] "POST /webhook HTTP/1.1" 200 - ************************************* ************************************* http://bcebb07a.ngrok.io/webhook' [发布]> *********************************************** ****************************** {'type': 'conversationUpdate', 'id': 'D3XJ6CAaVsc', 'timestamp': '2018 -06-05T06:51:56.7508828Z', 'serviceUrl': ' https://directline.botframework.com/ ', 'channelId': 'directline', 'from': {'id': '5DvIa5ImiPF4G6WnGlPYyY'}, '对话':{'id':'5DvIa5ImiPF4G6WnGlPYyY'},'recipient':{'id':'one_assist@CrbpWod1mw8','name':'OneAssist'},'membersAdded':[{'id':'botid'}]} 5Dvia5ImiPF4G6WnGlPYyY
################################################# ################# {'messages': [{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000000','conversationId':'5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:32:50.9651813Z','来自':'sid','text':'hello','channel' : {'clientActivityId': '1528180308547.7414264322396316.0'}, '图片': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000001', 'conversationId': '5DvIa5ImiPF4YGlG6Wn' :'2018-06-05T06:47:14.1602925Z','来自':'sid','text':'你好吗','channelData':{'clientActivityId':'1528180308547.7414264322396316.3'},'图像':[],'附件':[]},{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000002','conversationId':'5DvIa5ImiPF4G6WnGlPYyY','created':'2018-06-05T06:51:45.3174659Z','from':'sid','text':'你好','channelData':{'clientActivityId ':'1528180308547.7414264322396316.5'},'图片':[],'附件':[]}],'水印':'2'}
{“错误”:{“代码”:“BotError”,“消息”:“发送活动失败:机器人超时”},“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', 'timestamp': '2018-06-05T06 :52:16.6925987Z', 'serviceUrl': ' https://directline.botframework.com/ ', 'channelId': 'directline', 'from': {'id': 'botid'}, 'conversation': {'id':'5DvIa5ImiPF4G6WnGlPYyY'},'recipient':{'id':'one_assist@CrbpWod1mw8','name':'OneAssist'},'text':'嗨!'5Dvia5ImiPF4G6WnGlPYyY
################################################# ################# {'messages': [{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000000','conversationId':'5DvIa5ImiPF4G6WnGlPYyY','创建':'2018-06-05T06:32:50.9651813Z','来自':'sid','text':'hello','channel' : {'clientActivityId': '1528180308547.7414264322396316.0'}, '图片': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000001', 'conversationId': '5DvIa5ImiPF4YGlG6Wn' :'2018-06-05T06:47:14.1602925Z','来自':'sid','text':'你好吗','channelData':{'clientActivityId':'1528180308547.7414264322396316.3'},'图像':[],'附件':[]},{'id':'5DvIa5ImiPF4G6WnGlPYyY|0000002','conversationId':'5DvIa5ImiPF4G6WnGlPYyY','created':'2018-06-05T06:51:45.3174659Z','from':'sid','text':'你好','channelData':{'clientActivityId ': '1528180308547.7414264322396316.5'}, '图片': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000003', 'conversationId': '5DvIa5ImiPF4G6WnGlPYyY|0000003', 'conversationId': '5DvIa5ImiPF4G6WnGlPYy8,-'创建06-05T06:52:16.6925987Z','来自':'botid','文本':'嗨!','图像':[],'附件':[]}],'水印':'3' }'channelData': {'clientActivityId': '1528180308547.7414264322396316.5'}, '图像': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000003', 'conversationId': '5DvIaY5ImiPF4 '创建':'2018-06-05T06:52:16.6925987Z','来自':'botid','文本':'嗨!','图像':[],'附件':[]}], '水印':'3'}'channelData': {'clientActivityId': '1528180308547.7414264322396316.5'}, '图像': [], '附件': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000003', 'conversationId': '5DvIaY5ImiPF4 '创建':'2018-06-05T06:52:16.6925987Z','来自':'botid','文本':'嗨!','图像':[],'附件':[]}], '水印':'3'}文本':'嗨!','图像':[],'附件':[]}],'水印':'3'}文本':'嗨!','图像':[],'附件':[]}],'水印':'3'} https://directline.botframework.com/v3/directline/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities/
https://directline.botframework.com/v3/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities {“错误”:{“代码”:“BotError”,“消息”:“发送活动失败:机器人超时”},“httpStatusCode” : 504 }
解决方案
我在使用 ngrok 时遇到了类似的问题,我注意到您的日志中有对 127.0.0.1 的引用。尝试将 -host-header 参数添加到您的 ngrok 命令行。
例如我使用
ngrok http -host-header=localhost:55486 55486
其中 55486 是我的端点所在的端口号。
推荐阅读
- git - Git 挤压,变基
- angular - 使用 MatTableDataSource 时,带有 Firebase 的 Angular 材质表为空
- lda - 如何使用词主题矩阵预测查询主题?
- c# - 从数据表中检索数据
- c++ - 模板函数中的 C++ 默认参数
- ios - Xcode 调试器的变量视图中显示的更改信息
- javascript - 绘制图表后更新 d3 数据元素
- r - 选择从节点 u 到节点 v igraph R 的路径的有效方法
- tableau-api - 更改表格中每一列的标题名称
- javascript - 使用 shinyjs 使用 javascript 在闪亮的应用程序中操作现有的传单地图