我的应用程序使用了许多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"
}
}
有人可以帮我看看我错过了什么吗?
答案 0 :(得分:0)
必须授权用户(不仅是客户端ID)查看您域中的用户。通常,这是通过域内的管理员角色来控制的。这意味着您必须以lordshark.com用户身份登录才能列出用户。解决这个问题的唯一方法是创建一个服务帐户,如下所述: https://developers.google.com/identity/protocols/OAuth2ServiceAccount
但是那不能使用Javascript,所以你的应用需要一个后端。