Google apps script 使用Google应用程序脚本从电子邮件id获取用户名
我有一个向多个用户发送邮件的项目,我编写了使用应用程序脚本向多个用户发送电子邮件的脚本,但为了使邮件更加个性化,我想以“Hi Abhishek Mehta”的形式启动邮件 使用Google apps script 使用Google应用程序脚本从电子邮件id获取用户名,google-apps-script,Google Apps Script,我有一个向多个用户发送邮件的项目,我编写了使用应用程序脚本向多个用户发送电子邮件的脚本,但为了使邮件更加个性化,我想以“Hi Abhishek Mehta”的形式启动邮件 使用AdminDirectory.Users.get(userKey,{fields:'name'})我能够获取用户的名称,但不确定如何在工作表中列出他们 一般来说,我有50个电子邮件id,我想获取电子邮件id的全名,并想使用谷歌应用程序脚本将其写入谷歌工作表中 向社区请求帮助。getUser()的name返回一个对象,您需要
AdminDirectory.Users.get(userKey,{fields:'name'})
我能够获取用户的名称,但不确定如何在工作表中列出他们
一般来说,我有50个电子邮件id,我想获取电子邮件id的全名,并想使用谷歌应用程序脚本将其写入谷歌工作表中
向社区请求帮助。getUser()的name返回一个对象,您需要访问该对象以获取用户的名字和姓氏 下面的脚本将按电子邮件对域中的所有用户(如果您具有管理员访问权限)进行排序,并在名为
users
function listAllUsers() {
var ss = SpreadsheetApp.getActiveSheet();
var pageToken,
page;
var userInfo = []
do {
page = AdminDirectory.Users.list({
domain: '---------',
orderBy: 'email',
maxResults: 500,
pageToken: pageToken
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
var user = users[i];
try {
userInfo.push([user.primaryEmail, user.name.givenName, user.name.familyName]);
} catch (e) {
userInfo.push([user.primaryEmail, "", ""]);
}
}
} else {
Logger.log('No users found.');
}
pageToken = page.nextPageToken;
} while (pageToken);
var sheet = ss.getSheetByName('Users')
sheet.getRange(2, 1, userInfo.length, userInfo[0].length).setValues(userInfo);
}
下面是同样的脚本 文件id=以粗体字母表示的示例(1JeNKU366pzsdH-pg9esjkenlo0orqundougjmnkjm4/edit#gid=63023734) 文件名=主电子表格下的工作表名称,如sheet1或sheet2
`function getUserName() {
var ss = SpreadsheetApp.openById("File ID");
var sheet = ss.getSheetByName("File Name")
var values = sheet.getDataRange().getValues()
var fileArray = [["User Name"]]
for(i=1; i <values.length; i++)
{
var userKey = values[i][2] // '2' = Cloumn C
try{
var status = "No Name Found"
var status = AdminDirectory.Users.get(userKey, {fields:'name'})
var fullname = status.name.fullName
Logger.log(fullname)
if (status != "No Name Found"){
status = fullname
}
}
catch (e) {
Logger.log(e.message)
var status = e.message
}
fileArray.push([status])
}
var range = sheet.getRange(1, 4, fileArray.length, 1).setValues(fileArray)
}`
函数getUserName(){
var ss=SpreadsheetApp.openById(“文件ID”);
var sheet=ss.getSheetByName(“文件名”)
var values=sheet.getDataRange().getValues()
var fileArray=[[“用户名”]]
对于(i=1;i您需要在代码中添加此变量:var ss=SpreadsheetApp.getActiveSpreadsheet();我认为您没有正确理解这个问题,我不想获取所有用户的名称,我想获取工作表中提到的特定用户的名称,所以假设我有1000个用户,我只想获取工作表中提到的100个用户的名称。嗨,James,非常感谢您的回答,同时,我还创建了一个脚本,共享这里是另一个选择。
`function getUserName() {
var ss = SpreadsheetApp.openById("File ID");
var sheet = ss.getSheetByName("File Name")
var values = sheet.getDataRange().getValues()
var fileArray = [["User Name"]]
for(i=1; i <values.length; i++)
{
var userKey = values[i][2] // '2' = Cloumn C
try{
var status = "No Name Found"
var status = AdminDirectory.Users.get(userKey, {fields:'name'})
var fullname = status.name.fullName
Logger.log(fullname)
if (status != "No Name Found"){
status = fullname
}
}
catch (e) {
Logger.log(e.message)
var status = e.message
}
fileArray.push([status])
}
var range = sheet.getRange(1, 4, fileArray.length, 1).setValues(fileArray)
}`