Google app engine Python GAE应用程序同时使用两条腿的OAuth和三条腿的OAuth

Google app engine Python GAE应用程序同时使用两条腿的OAuth和三条腿的OAuth,google-app-engine,python-2.7,oauth-2.0,google-apps,2-legged,Google App Engine,Python 2.7,Oauth 2.0,Google Apps,2 Legged,我正在编写一个Python-Google应用程序引擎应用程序。此应用程序必须做两件重要的事情: 写入用户的日历 写入用户配置文件(与谷歌应用程序域中的用户一起工作) 第一次手术很容易。如果我理解OAuth,这就是经典的三条腿场景。OAuth最初为其开发的场景。登录用户向客户端(我的应用程序)提供凭据,以代表他/她访问用户的数据(日历)。因此,这可以通过登录用户的凭据来完成 第二次手术并不容易。仅使用登录用户的凭据无法完成此操作。这是一个两条腿的OAuth场景。因此,我需要在Google Ap

我正在编写一个Python-Google应用程序引擎应用程序。此应用程序必须做两件重要的事情:

  • 写入用户的日历
  • 写入用户配置文件(与谷歌应用程序域中的用户一起工作)
第一次手术很容易。如果我理解OAuth,这就是经典的三条腿场景。OAuth最初为其开发的场景。登录用户向客户端(我的应用程序)提供凭据,以代表他/她访问用户的数据(日历)。因此,这可以通过登录用户的凭据来完成

第二次手术并不容易。仅使用登录用户的凭据无法完成此操作。这是一个两条腿的OAuth场景。因此,我需要在Google Apps域管理员帐户中授权,以便使用Google profiles API(通过Google数据库)访问用户的配置文件。到目前为止,我在一个json文件中硬编码管理员用户/密码,我的应用程序加载该文件。但对我来说这听起来有点脏

最后,我的应用程序需要处理经典的3腿OAuth场景(没问题,只需要登录用户的凭据)和2腿OAuth场景(需要管理员凭据)

是否有任何官方或更优雅的方式来处理这两种情况在谷歌应用程序引擎,与谷歌应用程序领域,即硬编码管理员凭据


非常感谢您使用两条腿的OAuth无法授权对Google Contacts数据API的写入操作

,但似乎谷歌的某些人忘记指定其中一些是只读的:-s

有些人也有同样的问题


我期待谷歌有人来解决这个问题。在那之前,对管理员级别的凭证进行编码是我所知道的唯一可行的选择。我一点也不喜欢它:它很脏,但很有效。如果有人知道一个更优雅的禅级方式,请照亮我们

2012年4月,OAuth 1.0(或您所指的两条腿的OAuth)被弃用,因为它使用的是传统密码(客户端登录),因此使用OAuth 2.0最符合您的利益。我会尽力找到一个有用的解决办法。谢谢你的帮助。到目前为止,我们的大问题是我们需要管理员凭据。因此,例如,我们通过oauth2decorator\u从\u clientsecrets获得的OAuth2.0凭据是无效的。我说得对吗?(client_secrets.json从Google API控制台下载。它是web应用程序的客户端ID)