1

Я создаю скрипт приложений Google на электронной таблице, который создает пользователей в домене, представленном из формы регистрации, основанной на формах Google. Создание этого пользователя было легко с помощью этого метода UserManager.createUser(username, firstname, lastname,password);, но проблема в том, что я «Посмотрим, как проверить, существует ли пользователь, вставленный в электронную таблицу. Я проверил через Интернет специально по адресу https://developers.google.com/apps-script/, но ничего не нашел полезного.Проверка существующего пользователя с помощью скрипта Google Apps

ответ

3

насчет использования попробовать поймать блок? Простой, но должен облегчить ваши потребности.

try{ 
    // Get an existing user 
    var user = UserManager.getUser("delete.me"); 
}catch(e){ 
    // If user does not exist // i.e. error // create the user 
    var newUser = UserManager.createUser('delete.me', 'Delete', 'Me', 'testing123'); 
} 
+0

Большое спасибо, что это было бы отлично. –

0

Существует нет прямого API для него из Script Apps, но вы можете использовать User Provisioning с использованием OAuth 2 и UrlFetchApp. Вы можете увидеть некоторые sample integration с Audit API

+0

Извините, но вы можете объяснить больше? как я могу использовать аудит ауди в такой штуке? –

+0

Вы заменили бы API аудита API Provisioning API. Они очень похожи API. Сообщение, которое я указал, должно дать вам структуру и подход, необходимые для достижения того, что вам нужно. –

0

Здесь 2 версии сценария, который получает всех пользователей в моем домене, второй использует API, о котором упоминал Арун, и возвращает XML-документ, видимый в журнале регистрации (для этой тестовой версии), который вы могли бы проанализировать соответствующим образом.

Другой (первый фактически) использует UserManager сервис и показывает результаты в электронной таблице. Оттуда (используя массив) было бы легко проверить, имеет ли пользователь уже учетную запись.

вот код:

function findUsers(s) {  
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() 
    sheet.getDataRange().clear() 
    var users = UserManager.getAllUsers(); 
    var r = new Array(); 
// 
    for(var i = 0 ; i < users.length ; i++){ 
    var Umail = users[i].getEmail(); 
    var UnomF = users[i].getFamilyName() 
    var UnomP = users[i].getGivenName() 

     if(users[i].getAgreedToTerms()){var Udejaconnect = 'oui'}else{var Udejaconnect = 'jamais'} 
// 
    r.push([UnomF,UnomP,Umail,Udejaconnect]); 
    } 
    r.sort(function(x,y){ 
    var xp = x[0].toLowerCase(); 
    var yp = y[0].toLowerCase(); 
    Logger.log(xp+' '+yp) 
    return xp == yp ? 0 : xp < yp ? -1 : 1;// sort on name ascending 
} 
) 
    var header = ['Nom de famille','Prénom','Email','Déjà Connecté?'] 
    sheet.getRange(1,1,1,r[0].length).setValues([header]).setFontWeight('bold') 
    .setBackground('silver').setBorder(true,true,true,true,true,true); 
    sheet.getRange(2,1,r.length,r[0].length).setValues(r); 
} 

// new version provisioning API 
// 
function getUserData() { 
    var base = "https://apps-apis.google.com/a/feeds/"; 
    var fetchArgs = googleOAuth_("provisioning", base); 
    var url = base + "domain.name" + "/user/2.0"; 

    var result = UrlFetchApp.fetch(url,fetchArgs).getContentText() 
    var xml = Xml.parse(result); 
    Logger.log(result) 
    var users = xml.feed.entry; 

    var r = [['Login', 'Nom complet', "Droits d'admin.", 'Quota Emails', 'Compte suspendu']]; 
    for(var i in users) 
      r.push([users[i].login.userName, 
      users[i].name.givenName+' '+users[i].name.familyName, 
      users[i].login.admin, 
      users[i].quota.limit, 
      users[i].login.suspended]); 
    var s = SpreadsheetApp.getActiveSheet(); 
    s.clearContents(); 
    s.getRange(1, 1, r.length, r[0].length).setValues(r); 

} 


function googleOAuth_(name,scope) { 
    var oAuthConfig = UrlFetchApp.addOAuthService(name); 
    oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope); 
    oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken"); 
    oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); 
    oAuthConfig.setConsumerKey("anonymous"); 
    oAuthConfig.setConsumerSecret("anonymous"); 
    return {oAuthServiceName:name, oAuthUseToken:"always"}; 
} 
+0

Большое вам спасибо, что я прочитал ваш ответ и понял, что вы имели в виду с этим подходом, за исключением того, что другой ответ прямо на то, что мне больше не нужно, спасибо еще раз. –

Смежные вопросы