2017-08-07 14 views
4

(特にメールボックスの)Microsoft Graph Webhookサブスクリプションの開始に問題があります。サブスクリプションを開始すると、マイクロソフトはサブスクリプションを構成するために送信するすべてのパラメータを受け入れますが、構成したエンドポイントから2xx以外の応答を受信して​​いるため、サブスクリプション全体が失敗したように見えます。Microsoft Graph Webhook ClientStateがありません

私のエンドポイントが401をMicrosoftに送り返すのは、サブスクリプション検証トークンを含むPOSTにclientStateがないためです。

私は、Microsoftとエンドポイント間のすべての通信を認証するためにclientStateのキーと値のペアを使用しています。エンドポイントに正しいclientStateが表示されない場合は、401を返します。

私は何が不足しているのか、これを別のやり方で検討する必要があるかについてのアイデアはありますか?私の意見では、私のエンドポイントが認証されていないGET/POSTを受け入れることはオプションではありません。マイクロソフトから返さ

{ 
    "changeType": "created", 
    "clientState": "testClientState", 
    "resource": "users/<UserName>/messages", 
    "expirationDateTime": "2017-08-10T10:24:57.0000000Z", 
    "notificationUrl": "<EndpointURL>" 
} 

エラー:ヘッダー内のAPIキーを含むPOSTメソッドを使用して

例のリクエストボディの私の終点が送信されるまで

"error": { 
    "code": "InvalidRequest", 
    "message": "Subscription validation request failed. Must respond with 200 OK to this request.", 
    "innerError": { 
     "request-id": "adf7fc7b-6b14-4422-8526-c1391be8dd27", 
     "date": "2017-08-07T16:24:59" 
    } 
} 

は私が意図したとおりに動作するようにすべてを理解します私は検証トークンを受け取るが、私のエンドポイントはそれがクライアントの状態を欠いているので、それを拒否するので、

エンドポイントのログスニペット:

queryStringParameters": { 
    "validationToken": "<ValidationToken sent by Microsoft>" 
} 

私はMicrosoftの開発者向けガイドのいくつかのオフに私のAPIエンドポイントロジックを基づかています。特にサブスクリプションの作成については、私はusing this guideです。

この質問はalso asked but not answered on GitHubでした。

答えて

1

私はマイクロソフトグラフのWebフックチームを代表...

私たちは、MSグラフサービスログにリクエストを検証し、それが原因でHTTPステータスコードのサブスクリプションの検証段階で失敗したことを確認した=自分のエンドポイントから「不正な」 ...あなたの観測ごとにこれまでのすべてが正しいです...

MS Graph Webフックは、購読の検証要求の一部としてclientStateヘッダーを送信しません。サブスクリプションの検証中にこのヘッダーを期待しないでください。

詳しい情報

  1. Office365グラフはそれhttps://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations送るので、あなたは、検証要求ヘッダの一部としてclientStateを受けると予想しているでしょう。 ...
  2. この質問は、https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/subscription_post_subscriptionsにいくつかのドキュメントの改善が見られました...成功したサブスクリプションの検証後に発行者通知ペイロードがサブスクリプションの検証と一緒に記載されています...それらを修正しました。
+0

ご確認ください:私の回答があなたの質問に答えましたか? –

関連する問題