【问题标题】:Admin SDK and 2 Legged OauthAdmin SDK 和 2 Legged Oauth
【发布时间】:2013-06-05 21:13:15
【问题描述】:

有没有人幸运地让 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 密钥。”

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

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

谢谢

【问题讨论】:

    标签: python google-admin-sdk


    【解决方案1】:

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

    如果可能,您应该为您的应用升级到 OAuth 2.0 和(可能)Service Accounts(两足替代品)。

    我确实有一个应用程序市场应用程序,我想使用目录 API,但市场仍然只是 2-legged OAuth。我设法让 Directory 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 库生成的发现对象中,但我没有还没有弄清楚那会是什么样子,不过应该不会太难。

    【讨论】:

      猜你喜欢
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2011-02-02
      • 2012-12-13
      • 1970-01-01
      • 2015-07-17
      • 2013-08-21
      相关资源
      最近更新 更多