0

我已经弄清楚了 OAuth2 的工作原理(通过https://developers.google.com/api-client-library/python/guide/aaa_oauthcredentials ),现在有一个我想用于的 OAuth2Credentials 对象(我们称之为 object ) Google Apps 配置目的(此处的示例使用站点,但可以是任何 gdata api)

如果我尝试:

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)

我得到一个 AttributeError 相关对象(凭据或凭据。access_token)没有属性“修改请求”

有什么想法我可以尝试吗?

4

2 回答 2

0

这个答案说你必须在将 OAuth2Credentials 对象传递给SitesClient(auth_token=credentials). 它有一个答案,向您展示如何进行猴子修补

于 2012-10-09T06:11:11.257 回答
0

我不完全确定谷歌的客户端代码,但你总是可以尝试(无耻插件)制裁。这是我不久前在 Github 和 PyPI 上编写的 OAuth 2.0 客户端。

优点:

  • 作为一个惊人的 55 LOC,它非常容易摸索。如果出现问题,您不必在这里提问。您应该能够理解发生了什么;)
  • 它已经过 8 个不同的提供商(包括 Google)的测试

缺点:

  • 显然需要重构您当前的代码
  • 不假设(因此提供)持久性实现
  • 不提供 API 实现(您必须对您正在处理的 OAuth 2.0 公开的 API 有基本的了解)
于 2012-10-09T05:38:16.580 回答