【问题标题】:Can I access other Google User's Calendars through the Google API v3我可以通过 Google API v3 访问其他 Google 用户的日历吗
【发布时间】:2014-02-09 19:59:33
【问题描述】:

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

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

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

我已经访问了 Google 开发者控制台,并且有工作代码会弹出 Google 权限屏幕,然后重定向到成功创建新约会的 Url。

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

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

$authUrl = $client->createAuthUrl();

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

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

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

【问题讨论】:

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


    【解决方案1】:

    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,但日历的过程是相同的。

    【讨论】:

    • 文档描述了“在您的域内”,这与企业可能拥有的域相同吗?如果未知的第三方通过该应用程序进行身份验证并授予权限,这是否可行 - 或者我是否需要在我的域中向他们发布一个日历,看起来可能仅限于 600 个用户。
    • 我也很好奇,我希望我的用户通过应用程序添加与他们喜欢的日历相关的电子邮件。该应用程序将保存显示每个加入日历的活动的主日历。例如,每个用户都是有约会的现场代表,通过连接到他们的日历,应用程序会显示所有事件。我知道这可以按域管理所有用户,但大多数都有自己的 cal。他们可以与域相关日历共享他们的日历,但随后我向每个代表发布了新帐户。您能否解释一下其他 gmail 与外部日历的关系
    • 我也有同样的问题。假设我有两个或更多用于不同业务的域。企业 A: - Employee_a1 - Employee_a2 企业 B: - Employee_b1 所有员工都有 Google 电子邮件帐户。我能够双向同步每个员工的日历。但是,如果 Employee_a1 使用 Employee_b1 电子邮件帐户怎么办。 Employee_a1 会得到 Employee_b1 事件吗?所以我不确定在这种情况下域将如何工作?
    猜你喜欢
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    相关资源
    最近更新 更多