2016-05-13 89 views
3

我正在構建一個移動客戶端,以通過bot連接器directline與通過微軟botbuilder構建的機器人通話。我想發送諸如用戶與機器人講話的唯一ID之類的東西,所以我的機器人可以對這個用戶進行操作。目前我只是在發佈直接線,但是當我在身體中添加額外的東西時,我的機器人無法檢索它。我可能在做一些非常簡單的錯誤。很想得到你的幫助!從客戶端如何通過直連線連接器發送用戶信息

郵編:

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 

感謝您的耐心。

+0

請提供的示例代碼。 – nakashu

回答

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 
     } 
    } 
    }) 
}