调用 POST 到 https://graph.microsoft.com/v1.0/me/events 不工作
Call to POST to https://graph.microsoft.com/v1.0/me/events not working
我今天大部分时间都在尝试搜索,但没有找到问题的根源。我注册了一个应用程序并根据需要复制了 ID 以调用 Microsoft Graph API。
在对 users/xxxxxxx-f192-4758-xxxx-3f1c27ee5ef9/events 进行 GET 调用时,我确实在日历中取回了我的所有事件。
但问题是,当使用以下数据对 me/events 进行 POST 调用时:
$calendarEventData = array
(
'subject' => 'Test event in my calendar',
'start' => array
(
'dateTime' => '2020-12-22T15:14:14.524Z',
'timeZone' => 'UTC'
),
'end' => array
(
'dateTime' => '2020-12-22T17:14:14.524Z',
'timeZone' => 'UTC'
),
'body' => array
(
'content' => 'This is some hard coded body content',
'contentType' => 'text'
)
);
我返回 HTTP/1.1 403 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中使用“我”的对象id来替换me
。喜欢 POST https://graph.microsoft.com/v1.0/{user object id}/events
.
我今天大部分时间都在尝试搜索,但没有找到问题的根源。我注册了一个应用程序并根据需要复制了 ID 以调用 Microsoft Graph API。
在对 users/xxxxxxx-f192-4758-xxxx-3f1c27ee5ef9/events 进行 GET 调用时,我确实在日历中取回了我的所有事件。
但问题是,当使用以下数据对 me/events 进行 POST 调用时:
$calendarEventData = array
(
'subject' => 'Test event in my calendar',
'start' => array
(
'dateTime' => '2020-12-22T15:14:14.524Z',
'timeZone' => 'UTC'
),
'end' => array
(
'dateTime' => '2020-12-22T17:14:14.524Z',
'timeZone' => 'UTC'
),
'body' => array
(
'content' => 'This is some hard coded body content',
'contentType' => 'text'
)
);
我返回 HTTP/1.1 403 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中使用“我”的对象id来替换me
。喜欢 POST https://graph.microsoft.com/v1.0/{user object id}/events
.