【发布时间】:2015-07-27 20:33:18
【问题描述】:
在 2014 年 9 月 23 日的 a post on the Google Developers blog 中,它说:
对所有域用户的读取权限
从历史上看,只有管理员能够访问 Admin SDK 中的数据。 从今天开始,任何用户(不仅仅是管理员)现在都可以调用 用于读取域上任何用户的个人资料的目录 API(当然,我们 将尊重 ACL 设置和配置文件共享设置)。
但是,尽管检查了我能找到的所有 Google Apps 管理员设置,但我对非管理员用户的 Directory API 调用调用失败。精简代码:
params = {
client_id: XXXXXX,
scope: 'https://www.googleapis.com/auth/admin.directory.user.readonly',
response_type: 'token id_token',
immediate: true
};
gapi.auth.authorize(params, gHandleAuthResult);
var request = gapi.client.request({
'path': '/admin/directory/v1/users',
'params': {
'customer': 'my_customer',
}
});
request.then(function (response) {
var users = response.result.users;
if (!!users && users.length > 0) {
users.forEach(function (user) {
newMember.id = user.id || '';
}
}
}
这是使用适用于 JavaScript 的 Google API 客户端库。我已经在多个 Google Apps 帐户上尝试过此操作,它始终适用于管理员帐户,而不适用于非管理员,我得到响应“未授权访问此资源/api”。
previous post 询问此问题并收到回复说您必须使用服务帐户,但那是从 2014 年 6 月开始,在博文发布之前。我已经成功地使用服务帐户进行了调用,但我宁愿不必这样做,因为它需要服务器充当桥梁。
Google 开发者文档说“Google 工程师监控并回答标签 google-admin-sdk”,因此希望 Google 在这里得到答复。
【问题讨论】:
标签: google-apps google-admin-sdk google-directory-api