我在啓動Microsoft Graph webhook訂閱(特別是郵箱)時遇到問題。在啓動訂閱時,似乎Microsoft接受我發送的所有參數來配置訂閱,但由於它從我配置的端點接收到非2xx響應,因此訂閱失敗。Microsoft Graph Webhook丟失ClientState
我的終端向0123發送401
的原因是因爲他們的包含訂閱驗證令牌的POST缺少clientState。
我正在使用clientState鍵值對對Microsoft和我的端點之間的所有通信進行身份驗證。如果我的端點沒有看到正確的clientState,它將返回401
。
關於我可能會丟失什麼或者我應該以不同的方式去解決這個問題的想法?在我看來,允許我的端點接受未經身份驗證的GET/POST不是一種選擇。
使用POST方法,包括頭中的API密鑰示例請求體:從微軟
{
"changeType": "created",
"clientState": "testClientState",
"resource": "users/<UserName>/messages",
"expirationDateTime": "2017-08-10T10:24:57.0000000Z",
"notificationUrl": "<EndpointURL>"
}
返回錯誤:
"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>"
}
我立足我的API端點邏輯關閉一些微軟的開發者指南。特別是訂閱創作,我是using this guide。
看來這個問題是also asked but not answered on GitHub。
請確認:我的回覆是否回答了您的問題? –