![](/img/trans.png)
[英]Microsoft Azure Bot Framework SDK 4: Send proactive message to specific users from bot using Node js
[英]Send message from Postman to Microsoft Bot
我正在嘗試向我創建並發布到azure服務的機器人發送消息,以便機器人可以開始向其某些用戶發送消息。
我首先嘗試在Postman上發出請求,然后我可以為該交互構建一個控制器。
我正在做以下要求:
POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
Body:
grant_type:client_credentials
client_id: my_ms_app_id
client_secret: my_ms_app_secret
scope: https://api.botframework.com/.default
從此,我得到了承載授權的回應:
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 0,
"access_token": "eyJ0eXA..."
}
然后我繼續以下請求:
POST https://skype.botframework.com/v3/conversations
Content-Type: application/json
Authorization: Bearer eyJ0eXAi....
{
"bot": {
"id": "i don't have this id so i pass some string",
"name": "connector controller"
},
"isGroup": false,
"members": [
{
"id": "28:...", //ID of the bot I want to send the message to
"name": "Sp Bot"//Name of the bot I want to talk to
},
{
"id": "i don't have this id so i pass some string",
"name": "connector controller"
}
],
"topicName": "News Alert"
}
作為回應,我得到了匹配“id”的會話ID:“我沒有這個id所以我傳遞了一些字符串”:{“id”:“我沒有這個id所以我傳遞了一些字符串”}
然后我繼續執行以下POST請求:
POST. https://skype.botframework.com/v3/conversations/i don't have this id so i pass some string/activities
Authorization: Bearer eyJ0...
Content-Type:application/json
我收到以下回復:
400 Bad Request
{
"error": {
"code": "ServiceError",
"message": "The conversationId 29... and bot .... doesn't match a known conversation"
}
}
看起來問題出現在第二個和第三個post方法之間。 看起來https://skype.botframework.com/v3/conversations沒有與我輸入的ID生成與機器人的對話。
因此,當我最終調用bot時: https : //skype.botframework.com/v3/conversations/.../activities我總是收到serviceError消息。
根據您的評論,您正在嘗試創建自定義“頻道/客戶端”以與機器人交談。
為此,我建議您查看Direct Line,這似乎是實現您的要求的方法。
我不確定您使用的是哪種語言,因此我將向您發送指向C#和Node的指針。
這些示例將向您展示如何使用Direct Line創建自定義客戶端以與您的bot進行交互:
C#
Node.js
所有示例都使用控制台應用程序作為“自定義渠道”。
由於您要與您的機器人進行應用程序交談,並且很可能在您與Ezequiel聊天之后使用DirectLine ,因此我通過Potsman創建了一系列連接到DirectLine端點的屏幕提示。 我將假設您知道如何在Postman中使用環境和全局變量, 這里是Postman的文檔,以供其他人使用。 此外,DirectLine v3.0文檔也在這里 。
下面是您要求令牌的直接線端點的捕獲, {{DLsecret}}
的內容如下所示, Bearer <your-dl-secret>
:
您可能已經注意到我有一些測試結果,在下面的屏幕顯示中它有五個( 對四個 )測試,因為我添加了測試驗證在環境變量中設置了conversationId
:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.