问题描述
我今天大部分时间都在尝试搜索,但没有找到问题的根源。我注册了一个应用并根据需要复制了 id 以调用 Microsoft Graph API。
在向 users/xxxxxxx-f192-4758-xxxx-3f1c27ee5ef9/events 发出 GET 调用时,我确实在日历中取回了我的所有事件。
但问题是,当使用以下数据对我/事件进行 POST 调用时:
t
我收到一个 HTTP/1.1 403 Forbidden Forbidden 返回的“https://graph.microsoft.com/v1.0/me/events”。我已确保 Calendars.ReadWrite 的 API 权限确实存在并且也已授予同意(甚至重做以查看是否有所不同)
请告知我哪里出错了?
谢谢
解决方法
问题可能是由于您在Application类型(但不是Delegated类型)中分配了权限Calendars.ReadWrite
,并且您使用客户端凭据流进行身份验证.由于客户端凭据流不需要您输入用户名和密码,因此访问令牌将不包含用户信息。当您请求 api https://graph.microsoft.com/v1.0/me/events
时,api 后端不知道 me
是谁。所以它显示了 403 错误消息。
为了解决这个问题,你可以在你的请求api中使用“me”的对象id替换me
。喜欢POST https://graph.microsoft.com/v1.0/{user object id}/events
。