如何通过Directline BotConnector发送用户信息

3
我正在构建一个移动客户端,通过botconnector的directline与使用microsoft botbuilder构建的机器人交流。我想发送一些东西,比如用户与机器人说话的唯一标识符,以便我的机器人可以对这个用户进行操作。目前,我只是将信息POST到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

感谢您的耐心等待。

请提供示例代码。 - nakashu
1个回答

1
您尝试过在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
       }
     }
   })
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接