3

我正在构建一个移动客户端,通过 botconnector directline 与使用 microsoft botbuilder 构建的机器人交谈。我想发送与机器人交谈的用户的唯一 ID 之类的东西,这样我的机器人就可以对这个用户进行操作。目前我只是在直接发布,但是当我在正文中添加其他内容时,我的机器人无法检索它。我可能正在做一些非常简单的错误。很想得到你的帮助!

来自客户端的 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

谢谢你的耐心。

4

1 回答 1

1

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

{
  "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
       }
     }
   })
 }
于 2017-02-22T20:57:05.850 回答