我需要从数据存储区(App Engine应用)中的数据写入Google日历。
我想通过OAuth 2访问。
阅读没问题 - 日历是公开的,我只使用简单的API访问方法。
写作是一个“问题” - 显然我需要进行身份验证。但是,日历由应用程序管理员拥有,我们希望将日历作为后台任务写入 - 无需用户交互。
我已经浏览了所有Google的文档,但我觉得没什么更聪明的 - 如何通过V3 API对Google日历进行永久性写入访问的一次性设置?
答案 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
请注意以下事项:
您可能仍需要提供简单密钥才能将配额使用归因于正确的项目。
App Identity模块在本地App Engine开发期间无法运行 - 您需要部署到生产环境中才能获得有效的凭据。
您需要使用与App Engine应用程序的服务帐户关联的电子邮件地址共享您要写入的日历。要查找此电子邮件地址,请转到App Engine管理控制台 - > “应用程序设置”并查找服务帐户电子邮件。
最后,我不是100%确定Calendar API允许服务帐户直接访问,但您应该尝试一下。如果这对您不起作用,另一种选择可能是为有权访问日历的真实用户生成刷新令牌,并查看将其嵌入到您的应用程序中 - 服务帐户方法更可取,所以我会首先尝试