Google Apps Script - AdminDirectory.Chromeosdevices返回空recent



AdminDirectory。如果访问Chromebook的用户不是被管理组织的成员,则Chromeosdevices API将在recentUsers[0].email中返回空值。为什么呢?

请看下面的代码:

function testDevices() {
var optionalArgs = {   
maxResults: 200,
orderBy: 'serialNumber'
};
var arrValues = [];

// get devices statuts
var response = (AdminDirectory.Chromeosdevices.list("my_customer", optionalArgs));
var devices = response.chromeosdevices;
if (devices && devices.length > 0) {
Logger.log('Testing:');
var row;
for (i = 0; i < devices.length; i++) {
var device = devices[i];
var ip;
// some devices return undefined IP
if (device.lastKnownNetwork){
ip = device.lastKnownNetwork[0].ipAddress;
}else{
ip = "";
}
Logger.log(`Device ${device.serialNumber} IP:${ip} - ${device.recentUsers[0].email}`); 
// Undefined recentUsers[0].email when unmanaged

}
}
}

RecentUsers的文档指定

  1. 对于type有两种用户类型:

USER_TYPE_MANAGED:用户被域管理。

USER_TYPE_UNMANAGED:用户未被域管理。

  1. Foremail:

用户的邮箱地址。只有当用户类型为USER_TYPE_MANAGED时才会出现。


也就是说:

域外部用户属于用户的电子邮件地址不存在的类型。