1

我正在遍历用户列表以提取一些数据。

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 返回预期结果,但不返回部门。

一些用户帐户有部门数据,而另一些则没有,但在任何情况下,结果总是返回“未定义”。我究竟做错了什么 ?

完整代码在这里。

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);
  }
 }
}
4

1 回答 1

2

问题

Users资源没有顶级属性orgDepartment。尽管您可以使用(以及或其他前缀字段)搜索用户,但它没有在返回的对象中定义(因此是值)。orgDepartmentaddressorgundefined

解决方案

访问顶级属性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

参考

  1. Users资源表示参考
  2. 搜索Users字段参考
于 2019-09-14T03:14:10.717 回答