如何通过directline botconnector发送用户信息

时间:2016-05-13 11:20:29

标签: javascript botframework botconnector

我正在构建一个移动客户端,通过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

感谢您的耐心等待。

1 个答案:

答案 0 :(得分: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
       }
     }
   })
 }