我正在电子表格上创建一个谷歌应用程序脚本,该脚本在从谷歌表单支持的注册表单提交的域上创建用户,使用这种方法创建用户很容易,UserManager.createUser(username, firstname, lastname,password);
但我面临的问题是如何检查用户是否正在插入电子表格已存在。我专门在https://developers.google.com/apps-script/上检查了互联网,但没有发现任何帮助。
问问题
2234 次
3 回答
3
使用 try catch 块怎么样?简单但应该满足您的需求。
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');
}
于 2013-03-06T14:50:59.910 回答
0
Apps Script 没有直接的 API,但您可以使用 OAuth 2 和 UrlFetchApp使用用户配置。您可以看到与Audit API的一些示例集成
于 2013-03-05T21:20:42.533 回答
0
这是获取我域中所有用户的脚本的 2 个版本,第二个版本使用 Arun 提到的 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"};
}
于 2013-03-05T22:30:10.430 回答