【问题标题】:Grant GAE-app access to a Google API with google-api-python-client使用 google-api-python-client 授予 GAE 应用对 Google API 的访问权限
【发布时间】:2012-04-16 02:49:54
【问题描述】:

我正在开发一个 Google App Engine 应用程序,您可以在其中填写在线表格,并根据您填写表格的方式创建特定 Google 日历中的日历帖子。我想知道的是在这种情况下的授权,我希望此表单 100% 公开可用,并且无需登录即可创建日历帖子。

使用 OAuth2,我已经获得了实际的表单和后期创建,但只有在我登录时才能正常工作。

这就是我现在正在做的,我有:

  • 一个注册的应用,我们称之为form-app(.appspot.com)
  • 一个 Google 帐户,我们称之为 form-app-admin(@gmail.com) 此帐户拥有发布帖子的 Google 日历。
  • form-app-admin 拥有的一个 API 项目

我在 Google App Engine 示例中使用了这些和 google-api-python-client 库(及其 oauth2decorator),因此当我以 form-app-admin 身份登录并浏览 form-app 时。 appspot.com 一切都完全按照我的意愿工作,但如果我没有以 form-app-admin 身份登录,自然不会。

所以我想做的是授予这种权限,以便将这种权限写入 form-app-admin 的主日历到实际的应用程序,而不是当前使用该应用程序的用户。或者,还有更好的方法? 唯一的前提是任何人(无论是否登录 gmail)都应该能够填写表格,从而在某些谷歌日历中创建一个帖子。

如果有人碰巧有适当的 python 代码来实现这一点,我当然会非常感激,但主要是我需要帮助弄清楚如何去做,因为我对身份验证相关的东西几乎没有经验。

感谢您的宝贵时间! /幼稚的

【问题讨论】:

    标签: python google-app-engine google-api oauth-2.0 google-api-python-client


    【解决方案1】:

    你想要的是App Identity API。该页面显示了如何使用 API 向 Google API 声明身份的示例。

    【讨论】:

    • 谢谢!看起来就是这样,但是我找不到任何人使用它来访问日历 API 的示例,当我尝试使用示例交换数据以适合我的应用程序时,我收到错误消息:“用户必须是注册了 Google 日历。”我不相信我可以以日历用户的身份注册服务帐户...有人确定这应该与日历 API 一起使用吗?
    • 这是我从谷歌开发者那里得到的关于我是否可以使用 App Identity API 的问题的答案:“不,App Identity API 对日历没有帮助,因为它需要用户授权。 "链接:turbomanage.wordpress.com/2011/08/25/…
    • @Tottish Doh,对此感到抱歉。在这种情况下,最好的办法是创建一个用于此目的的角色帐户,并将其身份验证凭据嵌入到您的应用中。
    • 好的,但这真的可能吗?正如您从我的帖子中看到的那样,我已经设置了角色帐户(我称之为 form-app-admin@gmail.com 的那个),我相信只要它们是,就可以使用存储的凭据访问 API有效但你真的可以在 OAuth2 令牌过期而没有登录角色帐户的情况下续订它吗?我在某处读到谷歌正在为帐户循环一些密钥(在引擎盖下)以防止这种行为。你怎么看?
    • @Tottish 我不认为 OAuth2 令牌应该过期,除非用户明确取消。
    最近更新 更多