Php 无法添加到其他用户日历
我正在尝试允许用户将项目添加到其他用户的日历中。 用户登录并获取令牌,如下所示Php 无法添加到其他用户日历,php,microsoft-graph-api,microsoft-graph-sdks,Php,Microsoft Graph Api,Microsoft Graph Sdks,我正在尝试允许用户将项目添加到其他用户的日历中。 用户登录并获取令牌,如下所示 const AUTHORIZE_ENDPOINT = '/oauth2/v2.0/authorize'; const TOKEN_ENDPOINT = '/oauth2/v2.0/token'; const SCOPES = 'profile openid email User.Read Calendars.ReadWrite Calendars.Read Calendars.Read
const AUTHORIZE_ENDPOINT = '/oauth2/v2.0/authorize';
const TOKEN_ENDPOINT = '/oauth2/v2.0/token';
const SCOPES = 'profile openid email User.Read Calendars.ReadWrite Calendars.Read Calendars.Read.Shared Calendars.ReadWrite Calendars.ReadWrite.Shared';
$graph = new Graph();
$graph->setAccessToken($token);
$response = $graph->createRequest("GET", "/me")->setReturnType(Model\User::class)->execute();
登录的用户可以使用添加到自己的日历中
$request = $graph->createRequest("post", '/me/events');
$request->attachBody($data);
$response = $request->execute();
但是,当我尝试添加到另一个用户时
$request = $graph->createRequest("post", '/anotheruser/events');
$request->attachBody($data);
$response = $request->execute();
我明白了
Resource not found for the segment
已经做了管理员授权同意,所以一切都应该是好的
有什么建议吗?Url应该类似于
Users('anotheruser')/events
。因为您直接说的是另一个用户/事件。服务未将另一个用户识别为有效段并引发错误 如果要访问其他用户的数据,必须使用以下url:
/users/{id | userPrincipalName}
您的请求格式错误,最后您向一个不存在的资源发送了一个请求,因此Graph不知道该做什么。在您的情况下,只需预先添加
/users
(有关更多信息,请参阅)
因此,您的请求可能如下所示:
$request = $graph->createRequest("post", '/users/anotheruser/events');
请记住,如果您以用户()身份登录,则您尝试访问的日历必须已与登录用户共享。否则,由于缺少特权,它将失败,因为Graph只允许编辑与用户共享的内容。您还需要权限日历.Read.Shared
和/或日历.ReadWrite.Shared
(您似乎已经获得了这些权限)。如果您获得访问权限,并且自动拥有对所有用户的完全访问权限,则无需共享日历 当前,Graph API仅支持访问共享日历,但不支持编辑/更改共享状态或查看与用户共享哪些日历的操作。但是,您可以通过outlook或powershell手动更改共享状态