2013-07-05 60 views
0

我需要从我们的数据存储区(App Engine应用程序)中的数据写入Google日历。如何通过Google Calendar API(v3)写入我们自己的日历

我想通过OAuth访问2.

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

写作是一个“问题” - 显然我需要验证。但是,日历由应用管理员拥有,我们希望以后台任务的形式写入日历 - 无需用户交互。

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

+0

您想添加到Google日历中的附加功能是什么? – Raptor

+0

附加功能?我想写日历 - 以编程方式将事件写入日历。 – pwalsh

回答

0

为了使无需用户交互代表你的App Engine应用程序的调用,你应该使用的应用程序识别模块: https://developers.google.com/appengine/docs/python/appidentity/

如果您使用的是谷歌API客户端库,使用AppAssertionCredentials对象将做到这一点自动为您: https://developers.google.com/api-client-library/python/guide/google_app_engine#ServiceAccounts

注意以下几点:

  1. 你可能仍然需要提供日一个简单的密钥,以便将配额使用归因于正确的项目。

  2. 在本地App Engine开发过程中,App Identity模块不会工作 - 您需要部署到生产环境中才能获得有效凭据。

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

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

+0

嗨!好吧,这看起来不错,但是你的观点2是一个绝对的杀手 - 我无法在本地开发中测试它! 我调整了我的代码以使用AppAssertionCredentials对象,是的,当我实际尝试写入时,现在我得到一个新的“无效凭证”错误。设置一个分段来测试。 – pwalsh

+0

好吧,确认在分段服务器上工作。这很棒!我绝对是在google oauth2文档上打破我的头脑。我只是没有看到应用引擎有额外的助手类,尤其是像谷歌到谷歌服务这样的辅助类。 – pwalsh

相关问题