着信通知

会議の呼び出しと会議ボットを登録するMicrosoft Teams URL を呼び出す Webhook について説明します。 この URL は、ボットへのすべての着信呼び出しの Webhook エンドポイントです。

プロトコルの決定

受信通知は、以前のプロトコルと互換性を保つレガシ形式Skypeされています。 呼び出しを Microsoft Graph プロトコルに変換するには、ボットが通知が従来の形式であるかどうかを判断し、次の応答を提供する必要があります。

HTTP/1.1 204 No Content

ボットは通知を再び受信しますが、今回は Microsoft Graphされます。

リアルタイム メディア プラットフォームの将来のリリースでは、アプリケーションがサポートするプロトコルを構成して、従来の形式で最初のコールバックを受信しないようにすることができます。

次のセクションでは、展開に地域アフィニティ用にリダイレクトされる着信呼び出し通知の詳細について説明します。

地域アフィニティのリダイレクト

Webhook は、呼び出しをホストするデータ センターから呼び出します。 呼び出しは任意のデータ センターで開始され、地域アフィニティは考慮されません。 通知は、GeoDNS 解決に応じて展開に送信されます。 アプリケーションが最初の通知ペイロードを調べ、それ以外の場合は別の展開で実行する必要があると判断した場合、アプリケーションは次の応答を提供します。

HTTP/1.1 302 Found
Location: your-new-location

ボットが応答 API を使用して着信呼び出しに応答 できます 。 この特定の呼び出 callbackUri しを処理するを指定できます。 これは、呼び出 callbackUri しが特定のパーティションによって処理され、この情報を適切なインスタンスにルーティングするために埋め込むステートフル インスタンスに役立ちます。

次のセクションでは、Webhook に投稿されたトークンを調によるコールバックの認証の詳細を示します。

コールバックの認証

ボットは、Webhook に投稿されたトークンを検査して要求を検証する必要があります。 API が Webhook に投稿する度に、HTTP POST メッセージには、承認ヘッダーに OAuth トークンがベアラー トークンとして含まれます。対象ユーザーはアプリケーションのアプリ ID です。

アプリケーションは、コールバック要求を受け入れる前に、このトークンを検証する必要があります。

コールバックを認証するには、次のサンプル コードを使用します。

POST https://bot.contoso.com/api/calls
Content-Type: application/json
Authentication: Bearer <TOKEN>

"value": [
    "subscriptionId": "2887CEE8344B47C291F1AF628599A93C",
    "subscriptionExpirationDateTime": "2016-11-20T18:23:45.9356913Z",
    "changeType": "updated",
    "resource": "/app/calls/8A934F51F25B4EE19613D4049491857B",
    "resourceData": {
        "@odata.type": "#microsoft.graph.call",
        "state": "Established"
    }
]

OAuth トークンは次の値を持ち、次の値で署名Skype。

{
    "aud": "0efc74f7-41c3-47a4-8775-7259bfef4241",
    "iss": "https://api.botframework.com",
    "iat": 1466741440,
    "nbf": 1466741440,
    "exp": 1466745340,
    "tid": "1fdd12d0-4620-44ed-baec-459b611f84b2"
}

公開されている OpenID 構成を https://api.aps.skype.com/v1/.well-known/OpenIdConfiguration 使用して、トークンを確認できます。 各 OAuth トークンの値は、次のように使用されます。

  • aud 対象ユーザーは、アプリケーションに指定されたアプリ ID URI です。
  • tid は、ユーザーのテナント id Contoso.com。
  • issはトークン発行者です。 https://api.botframework.com

コード処理では、Webhook はトークンを検証し、有効期限が切れていないか確認し、発行された OpenID 構成によって署名されているかどうかを確認する必要があります。 コールバック要求を受け入れる前に、aud がアプリ ID と一致するかどうかを確認する必要があります。

詳細については、「受信要求 の検証」を参照してください

次のステップ

関連項目