3

我想构建一个应用程序,在他们未登录时代表我的用户管理 Google 日历中的约会。

该应用程序将是一个预订服务,订阅用户(我们的服务提供商)将预订他们不可用的时间,并且客户将看到服务提供商的谷歌日历的忙/闲表示

该应用程序需要能够创建、删除和读取约会。

我已经访问了 Google Developer's Console 并有工作代码弹出 Google Permissions 屏幕,然后重定向到成功创建新约会的 Url。

我可以访问其他日历,但前提是它们当时已登录 Google 服务。

$client = new \Google_Client(); 
$client->addScope('https://www.googleapis.com/auth/calendar');
$service = new \Google_Service_Calendar($client);

$authUrl = $client->createAuthUrl();

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

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

有谁知道这是否可能?关于如何解决这个问题的想法将不胜感激。

4

1 回答 1

5

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

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

您需要授予服务帐户客户端 ID 对必要日历 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 Drive,但日历的过程是相同的。

于 2014-02-09T11:59:33.697 回答