如何通过directline僵尸连接器发送用户信息

How to send user information through directline botconnector

本文关键字:用户 信息 连接器 何通过 directline 僵尸      更新时间:2023-09-26

我正在构建一个移动客户端,以便通过botconnector directline与使用microsoft botbuilder构建的机器人进行对话。我想发送一些东西,比如与机器人对话的用户的唯一id,这样我的机器人就可以对这个用户进行操作。目前我只是发布到directline,但当我在正文中添加其他内容时,我的机器人无法检索到它。我可能做错了一些简单的事情。很乐意得到你的帮助!

来自客户端的POST代码:

sendToBot: function(setUpObj, message, returnCallback){
    var postURL=baseURL+"/"+setUpObj.conversationId+"/messages"
    var postOptions ={
       method: 'POST',
       headers: {
           "Authorization": setUpObj.conversationToken,
           "content-type": "application/json"
       },
       body: JSON.stringify({
         "text": message,
         "from": {
           'address': setUpObj.currentUserUid
         }
       })
     }

    fetch(postURL, postOptions)
      .then(
        (response)=>response.text()
      )
      .then(
        (responseText)=>{
                this.getResponse(setUpObj, returnCallback)
        }
      )

  }

我正在通过访问服务器上的currentUserUid

session.message.from.address

谢谢你的耐心。

您尝试过在json中设置channelData吗?它被描述为"在客户端和机器人之间未经修改地发送的数据",看起来像:

{
  "id": "CuvLPID4kDb|000000000000000004",
  "conversationId": "CuvLPID4kDb",
  "created": "2017-02-22T21:19:51.0357965Z",
  "from": "examplebot",
  "text": "Hello!",
  "channelData": {
    "examplefield": "abc123"
  }
}

https://docs.botframework.com/en-us/core-concepts/channeldata/

所以在你的代码中,它可能看起来像:

var postOptions ={
   method: 'POST',
   headers: {
       "Authorization": setUpObj.conversationToken,
       "content-type": "application/json"
   },
   body: JSON.stringify({
     "text": message,
     "channelData": {
       "from": {
        "address": setUpObj.currentUserUid
       }
     }
   })
 }