我可以通过Google API v3访问其他Google用户的日历吗?

时间:2014-02-09 05:40:25

标签: php zend-framework2 google-api google-calendar-api google-client

我想构建一个应用程序,代表我的用户在未登录时管理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();

如果用户正在管理他们自己的日历,这可以正常工作。但是,我想代表他们管理约会。这将包括其他方在日历中输入约会 - 即日历未登录时。

我需要的是一个持久的应用程序权限,以获得对用户日历的持久访问权限?

有谁知道这可能吗?关于如何处理这个问题的想法将不胜感激。

1 个答案:

答案 0 :(得分:1)

OAuth 2.0服务帐户是访问用户帐户的正确方法:

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

您需要授予服务帐户客户端ID对必要的Calendar API范围的访问权限:

https://developers.google.com/drive/web/delegation#delegate_domain-wide_authority_to_your_service_account

然后,您的服务帐户可以模拟您的用户并代表他们执行日历操作:

https://developers.google.com/drive/web/delegation#instantiate_a_drive_service_object

这些文档描述了Google云端硬盘,但日历的流程完全相同。