我们有一个使用 MS Graph API 与客户的电子邮件/日历集成的应用程序。其中一位使用混合设置的客户(客户 A)报告了问题。所有用户突然收到电子邮件集成无法正常工作。我们使用我们的生产应用程序凭证和不同的环境(本地、开发云 AWS、暂存云 GCP、生产云 GCP)和有效的用户令牌对 MS Graph API 执行了几次测试调用(端点 /me/sendMail)。以下是结果和奇怪的行为:
- 好的。如果我们从所有环境中调用我们自己的测试帐户(Office365,非混合) - 一切正常。
- 好的。如果我们从所有环境中调用客户 B 帐户(Office365,非混合) - 一切正常。
- 好的。如果我们从本地、开发云 AWS 环境中调用客户 A 帐户(混合设置) - 一切正常。
- 超级奇怪。如果我们从暂存云 GCP、prod 云 GCP 环境中调用客户 A 帐户(混合、Exchange 2016 设置) - 我们会收到 404 和以下错误。
{“error”:{“code”:“MailboxNotEnabledForRESTAPI”,“message”:“REST API is not yet supported for this mailbox.“}}
客户的 IT 声称他们的日志中没有错误可以与此问题相关联。他们按照这里的 MS 建议做了所有事情https://docs.microsoft.com/en-us/graph/hybrid-rest-support#requirements-for-the-rest-api-to-work-in-hybrid-部署
更新:
在检查更多内容后,当特定 MS 数据中心为请求提供服务时,我们会收到 404:
以下是 404 的响应标头参数:
x-ms-ags-diagnostic {"ServerInfo":{"DataCenter":"UK South","Slice":"SliceC","Ring":"3","ScaleUnit":"000","RoleInstance": “AGSFE_IN_11”}}
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"Central US","Slice":"SliceC","Ring":"2","ScaleUnit":"002","RoleInstance" :"AGSFE_IN_14"}}
我们得到了 201(成功):
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"西欧","Slice":"SliceC","Ring":"5","ScaleUnit":"003","RoleInstance" :"AGSFE_IN_52"}}