REST API を使用してボットを作成しています。実際、ボットから次のようにメッセージを送信したい
「認証」から始めます
リクエスト:
curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id={app_id}&client_secret={app_password}&scope=https://graph.microsoft.com/.default"
応答:
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 0,
"access_token": "<access_token>"
}
次に、新しい会話を開始します
リクエスト:
POST https://skype.botframework.com/v3/conversations
Authorization: Bearer <access_token>
Content-Type: application/json
{
"bot": {
"id": "standupalice",
"name": "Standup Alice"
},
"isGroup": false,
"members": [
{
"id": "<my bot id>",
"name": "Standup Alice"
},
{
"id": "<my user id>",
"name": "Bao"
}
],
"topicName": "News Alert"
}
注: および は、Skype アプリから Standup Alice ボットに送信されたコールバック メッセージから取得されます。
応答:
{
"id": "<conversation id>"
}
会話 ID が と同じなので、変です。さて、次のリクエストとして送信するメッセージを作成します。
POST https://skype.botframework.com/v3/conversations/<conversation id>/activities
Authorization: Bearer <access_token>
Content-Type: application/json
{
"type": "message",
"from": {
"id": "<my bot id>",
"name": "Standup Alice"
},
"conversation": {
"id": "<conversation id>",
"name": "News Alert"
},
"recipient": {
"id": "<my user id>",
"name": "Bao"
},
"channelId": "skype",
"text": "My bot's reply"
}
応答 (http エラー 400 - 不正な要求):
{
"error": {
"code": "ServiceError",
"message": "The conversationId <conversation id>and bot <my bot id> doesn't match a known conversation"
}
}
要求とパラメーターの何が問題なのか分かりますか?
注 1: https://docs.botframework.com/en-us/core-concepts/overview/#navtitleで説明されているように、 https:// api .botframework.com/v3/conversations にリクエストを発行しようとしましたが、常にhttp エラー 404 を受け取ります - リソースが見つかりません。
注 2: Web チャットで同じ方法を試したところ、正常に動作しましたが、MS Teams は動作しません (http エラー 500 - 内部サーバー エラー)。