如何通过Google Calendar API(v3)写入我们自己的日历

时间:2013-07-05 06:22:36

标签: google-calendar-api google-oauth

我需要从数据存储区(App Engine应用)中的数据写入Google日历。

我想通过OAuth 2访问。

阅读没问题 - 日历是公开的,我只使用简单的API访问方法。

写作是一个“问题” - 显然我需要进行身份验证。但是,日历由应用程序管理员拥有,我们希望将日历作为后台任务写入 - 无需用户交互。

我已经浏览了所有Google的文档,但我觉得没什么更聪明的 - 如何通过V3 API对Google日历进行永久性写入访问的一次性设置?

1 个答案:

答案 0 :(得分:0)

要在没有用户互动的情况下代表您的App Engine应用程序拨打电话,您应该使用App Identity模块: https://developers.google.com/appengine/docs/python/appidentity/

如果您使用的是Google API客户端库,则使用AppAssertionCredentials对象会自动为您执行此操作: https://developers.google.com/api-client-library/python/guide/google_app_engine#ServiceAccounts

请注意以下事项:

  1. 您可能仍需要提供简单密钥才能将配额使用归因于正确的项目。

  2. App Identity模块在本地App Engine开发期间无法运行 - 您需要部署到生产环境中才能获得有效的凭据。

  3. 您需要使用与App Engine应用程序的服务帐户关联的电子邮件地址共享您要写入的日历。要查找此电子邮件地址,请转到App Engine管理控制台 - > “应用程序设置”并查找服务帐户电子邮件。

  4. 最后,我不是100%确定Calendar API允许服务帐户直接访问,但您应该尝试一下。如果这对您不起作用,另一种选择可能是为有权访问日历的真实用户生成刷新令牌,并查看将其嵌入到您的应用程序中 - 服务帐户方法更可取,所以我会首先尝试