使用服务帐户访问IOS中的Google日历

时间:2016-01-03 03:29:25

标签: ios calendar google-calendar-api icalendar

我需要访问非公开的Google日历,而无需用户登录或甚至拥有Google帐户。

我创建了一个使用服务帐户访问Google日历的Android应用程序:

actionView

这包括:

  1. 在Google App控制台中创建项目
  2. 创建服务帐户
  3. 授予服务帐户访问Google日历的权限
  4. 它很棒!

    我需要在IOS中做同样的事情。我已经阅读了关于这个主题的每一个问题/答案,并找到了非常不同的答案。许多人说Google在IOS SDK中不允许这样做,因为服务帐户旨在供基于服务器的应用程序使用。我不同意,因为我需要的功能在Android中可用。那么,现在呢?

    用例是这样的: 我的IOS应用需要访问Google日历。如果你可以使用OAuth,那部分就不会太难了。我对这种方法的问题是:

    • 要求用户拥有Google帐户。我的许多用户都是Apple-Only。我无法让他们获得Google帐户只是为了使用我的应用。
    • 我无法公开日历。所以,我需要访问每个新用户。我想我可以使用基于网络的应用程序来做到这一点,但这并不能解决问题(请参阅上一个问题 - 没有Google帐户)。

    我真的需要能够查询非公开Goog​​le日历中的事件而无需用户需要Google帐户。解决方案是使用"服务帐户" (我认为)。

    我读了一个问题/答案说这是可能的,但解决方案从未发布过。 (How to list Google Calendar Events without User Authentication

    帮助!

1 个答案:

答案 0 :(得分:1)

官方文档表明,如果您想要处理Calendar API(例如),您必须拥有Google Apps for Work(source)。

  

如果您有Google Apps域 - 例如,如果您使用Google Apps for Work,则Google Apps域管理员可以授权应用程序代表Google Apps域中的用户访问用户数据。例如,使用Google Calendar API将事件添加到Google Apps域中所有用户的日历的应用程序将使用服务帐户代表用户访问Google Calendar API。

一旦满足先决条件,您就可以尝试根据您的实现调用Calendar API的REST URL(因为文档中似乎没有iOS支持或示例)。