1

有没有人有幸让 2 Legged Oauth 与 Admin SDK 和 python 一起工作?

我可以在https://developers.google.com/admin-sdk/directory/v1/guides/authorizing关于 2LO的文档中看到的唯一内容如下:

“如果您的应用程序有某些不寻常的授权要求,例如在请求数据访问(混合)或域范围授权(2LO)的同时登录,那么您目前不能使用 OAuth 2.0 令牌。在这种情况下,您必须改为使用 OAuth 1.0 令牌和 API 密钥。您可以在 Google API 控制台的“API 访问”窗格的“简单 API 访问”部分中找到应用程序的 API 密钥。”

在搜索谷歌网站时,我可以找到将 2LO 与 gdata 库一起使用的示例,但没有关于将其与较新的 sdks 一起使用的示例......

如果有人可以向我指出正确的文档集 - 或如何使用 2LO 和新 SDK 的示例 - 将不胜感激。

谢谢

4

1 回答 1

0

新的 Admin SDK 目录和报告 API 支持 OAuth 1.0 身份验证,包括 2-legged OAuth。但是,Google API Python 客户端库已删除 OAuth 1.0 支持

如果可能,您应该为您的应用程序升级到 OAuth 2.0 和(可能)服务帐户(2 腿替代品)。

我确实有一个应用程序市场应用程序,我想将其与目录 API 一起使用,但市场仍然只是 2-legged OAuth。我设法让目录 API 使用 2-legged 使用 gdata 库进行身份验证和低级 POST / GET 库调用。一个简单的例子:

使用 2LO、Admin API 和旧 GData 库在 Google Apps 中获取用户:

gapps = gdata.client.GDClient()
gapps.ssl = True
gapps.auth_token = gdata.gauth.TwoLeggedOAuthHmacToken(two_legged.key, two_legged.secret, user_email)
uri = 'https://www.googleapis.com/admin/directory/v1/users/%s' % user_email
user_results = gapps.request(method='GET', uri=uri)
user_json = json.loads(user_results.read())

一个更好的方法可能是利用旧的 GData 库来生成所需的 2-legged OAuth 标头,然后将这些标头撕掉并将它们粘贴到新的 Google API 库生成的发现对象中,但我还没有解决那会是什么样子,但应该不会很难。

于 2013-06-10T11:58:36.293 回答