通过 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订阅
如何通过 REST API 为连接到 Microsoft Teams 频道的机器人获取机器人 ID 和用户 ID
找不到方法:'无效 Microsoft.PowerBI.Api.V1.PowerBIClient..ctor(Microsoft.Rest.ServiceClientCredentials, Syst