Botframework MS Bot,直连API,无法发送活动,如何修复?
我一直在尝试在应用程序中设置MS Bot。到目前为止,我没有跟踪Botframework MS Bot,直连API,无法发送活动,如何修复?,botframework,direct-line-botframework,Botframework,Direct Line Botframework,我一直在尝试在应用程序中设置MS Bot。到目前为止,我没有跟踪 为Bot设置一个REST端点,该连接器将侦听它 app.post("/botapi/messages", connector); 获取APP_ID和APP_密码,emulator已成功连接到以下位置: http://localhost:4000/botapi/messages APP_ID APP_PASSWORD “这是成功的,”机器人按预期回复 尝试使用Direct Line API与机器人对话。已成功启动对话。
app.post("/botapi/messages", connector);
http://localhost:4000/botapi/messages
APP_ID
APP_PASSWORD
“这是成功的,”机器人按预期回复 {
"conversationId": "3JYZyAn5VYB3HNcO3tcgtn",
token: ....
.....
}
正如文档所说,我使用“节点获取”包来发出POST请求 internal server error 500
文件上说POST请求应该如下所示
POST
https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer my_secret
这对于开始对话非常有效,但对于发送活动则不起作用
我发送的活动是:
{
"type": "message",
"from": {
"id": "user1"
},
"text": "hello Bot, say something"
}
我不认为“id”是重要的东西,所以这就是我贴到的
https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities
我使用了开始对话时收到的conversationId。
我在谷歌上搜索了一下,但没有找到我的问题的答案。
此外,我有几个问题,也许他们的回答会帮助我
Q1:url“”对于使用Direct Line API的每个人都是相同的?当我将其替换为bot的端点“”时,我甚至无法启动对话,没有任何效果
问题2:直线API是如何工作的?我发布了一篇关于API秘密的帖子,那么API是如何找到我的机器人的呢?Bot和API如何通信?我是不是遗漏了什么
问题3:当我发布POST发送活动时,我遵循了文档。
在授权中,我尝试了我的秘密和我从开始对话中获得的令牌,但都不起作用。我认为两者都应该起作用。我错了吗
问题4:我需要做些什么吗?我读了这篇文章,但我不知道它是干什么用的。我错了吗
那么,我错过了什么?如何发送活动
注意:我的机器人没有部署到azuri或aws,它只在我的Mac上。
但是,我得到了应用程序ID、应用程序密码和DirectLine的机密,正如文档所解释的 指定这是通过直达线路向bot发送活动(消息)的端点:
https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities
在这个URI中,{conversationId}
是您在创建时在响应体中收到的会话ID(conversationId
值)。请求主体应指定有关您正在发送的活动的信息,例如:
{
"type": "message",
"from": {
"id": "user1"
},
"text": "hello"
}
最后,回答您的问题:
- Q1:所有直连API请求的基本URI
- 问题2:您在请求的
标题中指定的直连密码或令牌用于标识请求应定向到的bot授权
- 问题3:是的,您应该能够指定您在发送活动请求的
授权
标题中的开始对话响应中收到的机密或
值。但是,请注意,您在开始对话响应中收到的令牌只能用于与该特定对话进行交互令牌
- 问题4:您链接到的文章与使用Direct Line API没有直接关系。(但正如@EzequielJadib在其评论中提到的,您确实需要为您的机器人启用直达频道。)