"Resource not found for the segment" 使用 Graph 订阅测试版

"Resource not found for the segment" using Graph subscription beta

我正在使用 Microsoft Graph 获取具有应用程序权限的日历事件。它工作得很好。现在我正在尝试设置一个订阅来监听事件变化,但是普通的 v1.0 不支持这个。但是测试版,至少在描述中,说它有效。

来自页面:https://graph.microsoft.io/en-us/docs/api-reference/beta/api/subscription_post_subscriptions

"Note: the /beta endpoint allows Application permissions as a preview feature for most resources."

所以我用 URL 尝试了这个: https://graph.microsoft.com/beta/subscriptions

像这样发送 json 对象:

{ "changeType":"created,updated,deleted", "notificationUrl":"https%3A%2F%2FXXX.com%2Fo365.php", "resource":"%2Fusers%2Fooom%40xxx.com%2Fevents", "clientState":"1486588355561", "expirationDateTime":"2018-11-20T18:23:45.9356913Z" }

这样做我得到了结果:

{ "error": { "code": "BadRequest", "message": "Resource not found for the segment '/users/room@xxx.com/events'.", "innerError": { "request-id": "d9ca58b1-ee1f-4072-81d5-0f1a25dcdd45", "date": "2017-02-08T21:26:51" } } }

我已经尝试了资源中所有类型的组合,但无法正常工作。 有人知道如何做到这一点吗?

json 属性的值不需要 url 编码。该资源也不需要 "users" 前面的“/”(尽管这不是导致您出现问题的原因)。

尝试将您的 JSON 更改为:

{ "changeType":"created,updated,deleted", "notificationUrl":"https://myurl.com/o365.php", "resource":"users/person@myemail.com/events", "clientState":"1486588355561", "expirationDateTime":"2018-11-20T18:23:45.9356913Z" }

如果这不能解决问题,请随时回复。