簡體   English   中英

從Postman發送消息給Microsoft Bot

[英]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> 撥打#1標頭

以下是您在有效通話中收到的響應正文的示例: 致電#1響應機構

您可能已經注意到我有一些測試結果,在下面的屏幕顯示中它有五個( 對四個 )測試,因為我添加了測試驗證在環境變量中設置了conversationId 致電#1測試和結果

這是發送的第二個查詢,其中包含一條實際消息: 撥打#2標頭

這是請求正文,其中包含以下消息: 呼叫#2請求正文(該消息)

這是響應機構: 致電#3響應機構

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM