2012-10-09 53 views
0

我已经计算出OAuth2的工作原理(通过https://developers.google.com/api-client-library/python/guide/aaa_oauth),并且现在有一个OAuth2Credentials对象(我们称之为对象credentials),用于Google Apps配置目的(此处的示例使用的是站点,但可以是任何该GData API与)如何在Python中使用Google API gdata客户端的OAuth2Credentials?

如果我尝试:

client = gdata.sites.client.SitesClient(site="test-site",domain='my.domain') 
client = credentials.authorize(client) 

我得到

TypeError: new_request() got an unexpected keyword argument 'http_request' 

,当我尝试做任何事情

如果我尝试

client = gdata.sites.client.SitesClient(site="test-site",domain='my.domain', auth_token=credentials) 

client = gdata.sites.client.SitesClient(site="test-site",domain='my.domain', auth_token=credentials.access_token) 

我得到的相关对象(凭证或credentials.access_token)有没有属性 'modify_request'

任何想法一个AttributeError我所能尝试?

回答

0

我对Google的客户端代码并不完全确定,但是您可以随时尝试(无耻插件)sanction。这是一个我刚刚在Github和PyPI上写过的OAuth 2.0客户端。

有利的一面:

  • 作为一个高达55 LOC,这是极大容易神交。如果出现错误,你就不必在这里提出的问题。你应该能才明白发生了什么事;)
  • 它已与8个不同的供应商(包括谷歌)
测试

的缺点:

  • 显然将需要您的当前代码的重构
  • 不承担(因此提供)持久性实现
  • 不没有提供API的实现(你必须有你处理OAuth 2.0已暴露的API有基本的了解)
0

answer说你必须猴补丁的OAuth2Credentials对象,把它传递给前SitesClient(auth_token=credentials)。它有一个答案,告诉你如何做猴子修补

+0

看到了,但似乎凌乱,没有提供的代码。所以我想我会看看是否有一个正确的方法来做到这一点 – askvictor

相关问题