我正在使用Google Apps脚本通过电子表格批量创建Google应用程序中的用户 我的电子表格有4列,我在其中具有一个名称,姓氏,emailID和密码,因为这些创建用户需要这些。
我以下脚本可以正常工作,并在没有问题的情况下创建用户,但是如果任何用户已经存在,它就会停止,并且不会继续尝试在电子表格中尝试其他脚本。我希望它循环整个电子表格,跳过已经存在的电子表格,并创建不存在的那些电子表格
任何帮助都会受到赞赏。function createUsers() {
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Create Users")
var values = sheet.getDataRange().getValues()
for(i=1; i <values.length; i++)
{
var fName = values[i][0]
var lName = values[i][1]
var email = values[i][2]
var password = values[i][3]
var status = values[i][4]
var user = AdminDirectory.Users.insert({
"primaryEmail": email,
"password": password,
"orgUnitPath": "/MDM Testing",
"name": {
"familyName": lName,
"givenName": fName
}
})
Logger.log(user);
}}
您可以添加是否条件如下检查重复的用户。
function createUsers() {
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("Create Users")
var values = sheet.getDataRange().getValues()
for(i=1; i <values.length; i++)
{
var fName = values[i][0]
var lName = values[i][1]
var email = values[i][2]
var password = values[i][3]
var status = values[i][4]
// Check user exist or not by email address.
var userFromDirectory = AdminDirectory.Users.get(email);
if(email != userFromDirectory.primaryEmail){
var user = AdminDirectory.Users.insert({
"primaryEmail": email,
"password": password,
"orgUnitPath": "/MDM Testing",
"name": {
"familyName": lName,
"givenName": fName
}
})
Logger.log(user);
} // end of if
}}
function checkIfUserExist(email) {
try {
//get the direcotry
var adminDirectory = AdminDirectory.Users;
//try to retrieve the user with the given email, if this fails an error will be generated
adminDirectory.get(email);
// if no error was generated previously return 1
return 1;
} catch (e) { //if the attempt to get the user cause an error
//if the error says not found
if (e.message.indexOf('Not Found') !== -1) {
//return 0
return 0;
} else {
//if the error does not include a not found text, something else happened
console.log("ERROR: " + e.message);
}
}
}
源检查:https://developers.google.com/admin-sdk/directory/reference/rest