通过 Rest Api 订阅 Microsoft Graph Api Webhook 不再有效

Posted

技术标签:

【中文标题】通过 Rest Api 订阅 Microsoft Graph Api Webhook 不再有效【英文标题】:Microsoft Graph Api Webhook subscription via Rest Api not working anymore 【发布时间】:2016-10-25 10:29:28 【问题描述】:

我有一个从 MS-Graph Api 接收电子邮件 webhook 事件的工作应用程序。 我注意到我无法使用 subscriptionId 找到订阅,我收到 404 错误。我也无法使用 id 删除订阅。

我进一步调查并注意到我无法再创建新订阅: 在 Azure AD 中注册的应用程序是一个服务应用程序(守护进程)

我的应用程序会自动续订订阅,每次它都会收到 202 响应,但不知何故订阅会丢失。

请求:

发帖:https://graph.microsoft.com/beta/subscriptions

"changeType": "created,updated,deleted", "notificationUrl": "https://myapi.azurewebsites.net/GraphWebhook/Inbox", "resource": "Users/myemail@company.nl/mailFolders('inbox')/messages", "expirationDateTime":"2016-10-25T20:23:45.9356913Z", "clientState": "subscription-identifier"

回复:

"error": 
"code": "ExtensionError",
"message": "Operation: Create; Exception: [Status Code: NotFound; Reason: Not Found]",
"innerError": 
  "request-id": "681ac550-be6f-4882-9b6b-e089c36ad38e",
  "date": "2016-10-25T10:13:25"

有人有什么想法吗?

更新:现在再次出乎意料地工作。

【问题讨论】:

【参考方案1】:

API 支持将用户 ID 和用户电子邮件地址作为资源路径的一部分,并且它不会更改。要检查是API问题还是资源问题,您可以尝试使用graph explorer访问您的资源:

GET https://graph.microsoft.com/beta/users/myemail@company.nl/mailFolders('inbox')/messages

关于您在创建订阅时看到的错误,它看起来像是与 this 相关的 Exchange 问题。

希望这会有所帮助。

【讨论】:

有没有办法查询绑定到特定邮箱的所有订阅?我在文档中找不到类似的内容。 不,API 目前不支持。您只能使用订阅 ID 查询特定订阅。 @CuongPham 我遇到了同样的错误。我不明白解决方案。我已经在这里github.com/microsoftgraph/nodejs-webhooks-rest-sample/issues/17 发布了我的问题。错误在于创建订阅。你能帮我么。提前致谢。 我在尝试订阅联系人文件夹上的“已创建”通知时遇到了同样的错误。虽然“更新,删除”正常工作。

以上是关于通过 Rest Api 订阅 Microsoft Graph Api Webhook 不再有效的主要内容,如果未能解决你的问题,请参考以下文章

Google Pub/Sub - 多个订阅同一主题以通过 REST API 减少负载?

无法通过REST API为punlisherId = tfs和eventId tfvc.checkin创建VSTS webhook订阅

MS Graph API订阅邮件发送

使用Azure REST API创建虚拟机

如何通过 REST API 为连接到 Microsoft Teams 频道的机器人获取机器人 ID 和用户 ID

找不到方法:'无效 Microsoft.PowerBI.Api.V1.PowerBIClient..ctor(Microsoft.Rest.ServiceClientCredentials, Syst