Microsoft graph api Microsoft Graph Webhook缺少ClientState

Microsoft graph api Microsoft Graph Webhook缺少ClientState,microsoft-graph-api,Microsoft Graph Api,我无法启动Microsoft Graph webhook订阅(尤其是邮箱订阅)。启动订阅时,Microsoft似乎接受我发送的用于配置订阅的所有参数,但总订阅失败,因为它正在从我配置的端点接收非2xx响应 my endpoint将401发送回Microsoft的原因是他们包含订阅验证令牌的帖子缺少clientState 我正在使用clientState密钥-值对来验证Microsoft和我的端点之间的所有通信。如果我的端点没有看到正确的clientState,它将返回一个401 关于我可能遗漏了

我无法启动Microsoft Graph webhook订阅(尤其是邮箱订阅)。启动订阅时,Microsoft似乎接受我发送的用于配置订阅的所有参数,但总订阅失败,因为它正在从我配置的端点接收非2xx响应

my endpoint将
401
发送回Microsoft的原因是他们包含订阅验证令牌的帖子缺少clientState

我正在使用clientState密钥-值对来验证Microsoft和我的端点之间的所有通信。如果我的端点没有看到正确的clientState,它将返回一个
401

关于我可能遗漏了什么,或者我是否应该用另一种方式去做,有什么想法吗?在我看来,允许我的端点接受未经验证的GET/POST不是一个选项

使用POST方法的请求正文示例,包括标头中的API键:

{
“变更类型”:“已创建”,
“客户端状态”:“testClientState”,
“资源”:“用户//消息”,
“到期日期时间”:“2017-08-10T10:24:57.0000000 Z”,
“通知URL”:”
}
从Microsoft返回的错误:

“错误”:{
“代码”:“InvalidRequest”,
“消息”:“订阅验证请求失败。必须对此请求作出200 OK的响应。”,
“内部错误”:{
“请求id”:“adf7fc7b-6b14-4422-8526-c1391be8dd27”,
“日期”:“2017-08-07T16:24:59”
}
}
我知道在我的端点被发送验证令牌之前,一切都能正常工作,因为我收到了验证令牌,但我的端点拒绝了它,因为它缺少客户端状态

端点日志片段:

queryStringParameters”:{
“validationToken”:”
}
我的API端点逻辑基于Microsoft的一些开发人员指南。对于订阅创建,我尤其如此


似乎这个问题是。

我代表Microsoft Graph Web hooks团队

我们在MS Graph服务日志中验证了您的请求,并确认该请求在订阅验证阶段失败,因为来自您的端点的HTTP状态代码为“Unauthorized”…截至此,根据您的观察,一切都是正确的

根据设计,MS Graph Web挂钩不会将clientState标头作为订阅验证请求的一部分发送。请不要在订阅验证期间使用此标头

更多信息
  • 您本来希望将clientState作为验证请求标头的一部分接收,因为Office365 graph会发送它。Office 365 graph与MS graph不同
  • 在…示例发布者通知有效负载中观察到此问题的一些文档改进,这是在提及成功订阅以及订阅验证之后…我们修复了这些问题

  • 请确认:我的回答是否回答了您的问题?