microsoft-graph – Microsoft Graph Webhook缺少ClientState
我无法启动Microsoft Graph webhook订阅(特别是对于邮箱).在启动订阅时,似乎Microsoft接受我发送的所有参数以配置订阅但未通过总订阅,因为它从我配置的端点收到非2xx响应.
我的端点将401发送回Microsoft的原因是因为包含订阅验证令牌的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>" } 从Microsoft返回错误: "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端点逻辑基于Microsoft的一些开发人员指南.特别是对于订阅创建,我是using this guide. 看来这个问题是also asked but not answered on GitHub. 解决方法
我代表Microsoft Graph Web钩子团队……
我们在MS Graph服务日志中验证了您的请求,并确认它在订阅验证阶段失败,因为您的终端的HTTP状态代码=’未授权’…根据您的观察,一切都是正确的… 根据设计,MS Graph Web挂钩不会将订阅者验证请求的一部分发送到clientState标头.订阅验证期间请不要期望此标头. 更多信息 >您可能希望将clientState作为验证请求标头的一部分接收,因为Office365图形将其发送为https://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations. Office 365图形与MS Graph不同… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008 – 按需病毒扫描Windows
- Windows – 来自同一用户帐户的LocalServer32 EXE的COM激活
- 如何在Windows 7上使用批处理文件更改MAC地址?
- windows – CPU密集型线程智慧
- .net – Task <>和IAsyncOperation <>
- Windows是否尝试查找IPv6 AAAA记录,即使它没有可路由的IPv6
- 带有标题和项模板列的Windows 8 XAML ListView应具有相同的
- windows-server-2003 – 可以从“开始”菜单中删除“关机”
- Windows 8应用程序中Numericbox的替代品?
- 最快的方式在Windows中编写和编译C/C++程序