如何从特定域用户Gmail帐户列出Google Directory中的用户?

时间:2017-11-09 14:16:33

标签: javascript google-directory-api

我的应用程序使用了许多Google API范围。最初它仅限于我的域内的用户(让我们称之为lordshark.com并且它工作正常)...但现在我被要求接受任何GMail用户,主要问题是:

考虑我已登录某人@ gmail.com ,我想使用以下方法检索Javascript中lordshark.com域中的所有用户:

gapi.client.directory.users.list({
    'viewType': 'domain_public',
    'customer': 'my_customer',
    'maxResults': 100,
    'orderBy': 'email',
    'domain': 'lordshark.com'
})

我已授权我的API客户端(https://admin.google.com/lordshark.com/AdminHome?chromeless=1#OGX:ManageOauthClients)已启用联系人共享(https://admin.google.com/lordshark.com/AdminHome?chromeless=1#AppDetails:service=Directory&flyout=sharing),但仍然收到此回复:

{
    "error": {
        "code": 403,
        "errors": [
            {
                "domain": "global",
                "message": "Not Authorized to access this resource/api",
                "reason": "forbidden"
            }
        ],
        "message": "Not Authorized to access this resource/api"
    }
}

有人可以帮我看看我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

必须授权用户(不仅是客户端ID)查看您域中的用户。通常,这是通过域内的管理员角色来控制的。这意味着您必须以lordshark.com用户身份登录才能列出用户。解决这个问题的唯一方法是创建一个服务帐户,如下所述: https://developers.google.com/identity/protocols/OAuth2ServiceAccount

但是那不能使用Javascript,所以你的应用需要一个后端。