0

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

我想通过 OAuth 2 访问。

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

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

我已经阅读了所有 Google 的文档,但我觉得一点也不明智 - 我如何通过 V3 API 一次性设置对 Google 日历的永久写入访问权限?

4

1 回答 1

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 管理控制台 ->“应用程序设置”并查找服务帐户电子邮件。

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

于 2013-07-06T15:24:24.857 回答