Как отправить информацию о пользователе через directline botconnector
Я создаю мобильный клиент, чтобы общаться с ботом, созданным с помощью Microsoft botbuilder через botconnector 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
Спасибо за ваше терпение.
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
}
}
})
}