我正在构建一个移动客户端,通过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)
}
)
}
我正在通过
访问服务器上的currentUserUidsession.message.from.address
感谢您的耐心等待。
答案 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
}
}
})
}