在我的一个解决方案中,我打算从使用应用程序客户端凭据进行身份验证的 Azure 函数创建对组日历事件资源的 Microsoft Graph 订阅
授予应用程序主体的权限是Calendars.ReadWrite
和Group.ReadWrite.All
所以调用的有效负载看起来像
{
"changeType": "updated",
"resource": "groups/a619f4ce-7538-47c3-8feb-f5df845c5e96/calendar/events",
"expirationDateTime": "2020-03-20T00:00:00Z",
"notificationUrl": "https://4ed2bafd.ngrok.io/api/Webhook"
}
我得到的错误 400 是
Exception: Error: Error making HttpClient request in queryable [400] Bad Request ::> {
[18/03/2020 19:19:39] "error": {
[18/03/2020 19:19:39] "code": "InvalidRequest",
[18/03/2020 19:19:39] "message": "Subscription to a group's 'conversations' is not supported with Application-level permissions.",
[18/03/2020 19:19:40] "innerError": {
[18/03/2020 19:19:40] "request-id": "6337f57d-a266-4947-9f3b-289c8d8c9c9e",
[18/03/2020 19:19:40] "date": "2020-03-18T19:19:40"
[18/03/2020 19:19:40] }
[18/03/2020 19:19:40] }
[18/03/2020 19:19:40] }
使用 Graph Explorer 创建订阅时,同样的调用效果很好(因此我的登录用户是该组的一部分)。
我了解,我无法使用仅限应用程序的权限从群组中获取对话,并且共享 Outlook 对象存在限制,但我本可以期望能够订阅特定群组日历事件(顺便说一句,这不是“对话”,如错误消息中所述)。有可能吗,还是应该以不同的方式完成?
干杯,
雅尼克