Google 目录 API 用户列表 orgDepartment returns 未定义
Google Directory API User list orgDepartment returns undefined
我正在遍历用户列表以提取一些数据。
Logger.log('\nName : %s\nEmail : %s\nOU : %s\nDepartment : %s\n', users[i].name.fullName, users[i].primaryEmail, users[i].orgUnitPath, users[i].orgDepartment);
姓名、电子邮件和 OU return 预期结果但不是部门。
有些用户帐户有部门数据,有些则没有,但无论如何结果总是会返回 'undefined'。我做错了什么?
完整代码在这里。
function listUsers(){
var values = [],
users = [],
userListQuery = {},
nextPageToken = '',
listObject = {
customer: 'my_customer',
query: "isSuspended=false",
maxResults: 500
},
i = 0,
j = 0;
do {
if (nextPageToken && nextPageToken !== '') {
listObject.pageToken = nextPageToken;
}
var userListQuery = AdminDirectory.Users.list(listObject);
// Si plus de maxResults retourner à nextPageToken
nextPageToken = userListQuery.nextPageToken;
// Ajout de résultats à la liste
users = users.concat(userListQuery.users);
} while (nextPageToken);
for (i = 0; i < users.length; i++) {
// Filtrer les résultats
if (users[i].orgUnitPath == '/') {
j++;
Logger.log('Résultat #%s', j.toString());
Logger.log('\nNom : %s\nCourriel : %s\nOU : %s\nDépartement : %s\n', users[i].name.fullName, users[i].primaryEmail, users[i].orgUnitPath, users[i].orgDepartment);
}
}
}
问题
Users
资源没有顶级 属性 orgDepartment
。尽管您可以使用 orgDepartment
(以及 address
或其他 org
前缀字段)搜索 用户,但返回的对象中并未定义它(因此 undefined
值)。
解决方案
访问顶级 属性 organizations
,这是一个 Array<Object>
(该用户所属的组织)。它的元素结构如下(显然,你需要 department
属性):
{
"name": string,
"title": string,
"primary": boolean,
"type": string,
"customType": string,
"department": string,
"symbol": string,
"location": string,
"description": string,
"domain": string,
"costCenter": string,
"fullTimeEquivalent": integer
}
假设只有一个组织与用户关联,引用部门应如下所示:users[i].organizations[0].department
参考
我正在遍历用户列表以提取一些数据。
Logger.log('\nName : %s\nEmail : %s\nOU : %s\nDepartment : %s\n', users[i].name.fullName, users[i].primaryEmail, users[i].orgUnitPath, users[i].orgDepartment);
姓名、电子邮件和 OU return 预期结果但不是部门。
有些用户帐户有部门数据,有些则没有,但无论如何结果总是会返回 'undefined'。我做错了什么?
完整代码在这里。
function listUsers(){
var values = [],
users = [],
userListQuery = {},
nextPageToken = '',
listObject = {
customer: 'my_customer',
query: "isSuspended=false",
maxResults: 500
},
i = 0,
j = 0;
do {
if (nextPageToken && nextPageToken !== '') {
listObject.pageToken = nextPageToken;
}
var userListQuery = AdminDirectory.Users.list(listObject);
// Si plus de maxResults retourner à nextPageToken
nextPageToken = userListQuery.nextPageToken;
// Ajout de résultats à la liste
users = users.concat(userListQuery.users);
} while (nextPageToken);
for (i = 0; i < users.length; i++) {
// Filtrer les résultats
if (users[i].orgUnitPath == '/') {
j++;
Logger.log('Résultat #%s', j.toString());
Logger.log('\nNom : %s\nCourriel : %s\nOU : %s\nDépartement : %s\n', users[i].name.fullName, users[i].primaryEmail, users[i].orgUnitPath, users[i].orgDepartment);
}
}
}
问题
Users
资源没有顶级 属性 orgDepartment
。尽管您可以使用 orgDepartment
(以及 address
或其他 org
前缀字段)搜索 用户,但返回的对象中并未定义它(因此 undefined
值)。
解决方案
访问顶级 属性 organizations
,这是一个 Array<Object>
(该用户所属的组织)。它的元素结构如下(显然,你需要 department
属性):
{
"name": string,
"title": string,
"primary": boolean,
"type": string,
"customType": string,
"department": string,
"symbol": string,
"location": string,
"description": string,
"domain": string,
"costCenter": string,
"fullTimeEquivalent": integer
}
假设只有一个组织与用户关联,引用部门应如下所示:users[i].organizations[0].department
参考