我想构建一个应用程序,代表我的用户在未登录时管理Google日历中的约会。
该应用程序将是预订服务,订阅用户(我们的服务提供商)将预订他们不可用的时间,并且客户将看到服务提供商的谷歌日历的忙/闲表示
应用程序需要能够创建,删除和读取约会。
我已经访问了Google Developer's Console,并拥有弹出Google权限屏幕的工作代码,然后重定向到成功创建新约会的Url。
我可以访问其他日历,但前提是他们已登录Google服务。
$client = new \Google_Client();
$client->addScope('https://www.googleapis.com/auth/calendar');
$service = new \Google_Service_Calendar($client);
$authUrl = $client->createAuthUrl();
如果用户正在管理他们自己的日历,这可以正常工作。但是,我想代表他们管理约会。这将包括其他方在日历中输入约会 - 即日历未登录时。
我需要的是一个持久的应用程序权限,以获得对用户日历的持久访问权限?
有谁知道这可能吗?关于如何处理这个问题的想法将不胜感激。
答案 0 :(得分:1)
OAuth 2.0服务帐户是访问用户帐户的正确方法:
https://developers.google.com/accounts/docs/OAuth2ServiceAccount
您需要授予服务帐户客户端ID对必要的Calendar API范围的访问权限:
然后,您的服务帐户可以模拟您的用户并代表他们执行日历操作:
https://developers.google.com/drive/web/delegation#instantiate_a_drive_service_object
这些文档描述了Google云端硬盘,但日历的流程完全相同。