【问题标题】:Google Directory API always return 403 when using OAuth2.0 even after user consent即使在用户同意后,Google Directory API 在使用 OAuth2.0 时总是返回 403
【发布时间】:2016-08-24 23:44:46
【问题描述】:

我正在开发一个网络应用程序,并且正在努力使用 Google Directory API。

应用程序正在尝试使用以下简单代码获取用户所属的 google 组列表:

from apiclient import discovery
from google.appengine.api import users
from oauth2client.appengine import OAuth2DecoratorFromClientSecrets

def decorator():
    ....(some scopes including admin.directory.group)
    return decorator

class MainHandler(webapp2.RequestHandler):
    @decorator.oauth_required
    def get(self):
        me = users.get_current_user()

        http = oauth_decorator.http()
        service = discovery.build('admin', 'directory_v1', http=http)
        grouplist = service.groups().list(userKey=me).execute()
        ....

这会在启用 Admin SDK 时导致 403 Not Authorized to access this resource。有很多问题报告了类似的问题,但主要区别在于我尝试使用 OAuth2.0 而不是使用服务帐户,这意味着用户需要明确同意并授予我要求的权限。

所以我的猜测是出于某种原因,该请求没有使用正确的用户授权代码,但我不知道如何证明我的怀疑以及如何使其工作。有什么建议么?非常感谢提前!

【问题讨论】:

    标签: google-app-engine oauth2 google-account google-directory-api


    【解决方案1】:

    我联系了 Google,结果证明我需要成为域管理员才能使用列出的任何 Admin API。

    在我的情况下不太可行,所以我正在寻找解决方法。

    【讨论】:

      【解决方案2】:

      由于每个 API 都定义了一个范围,因此管理员需要在生成令牌时为其授予同意。如果你使用的是 OAuth2.0,一旦你生成了一个刷新令牌,你就可以开始了。

      【讨论】:

        猜你喜欢
        • 2014-12-12
        • 2018-03-03
        • 2018-03-16
        • 2021-02-04
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2013-08-24
        相关资源
        最近更新 更多