Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用Google应用程序脚本从电子邮件id获取用户名_Google Apps Script - Fatal编程技术网

Google apps script 使用Google应用程序脚本从电子邮件id获取用户名

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返回一个对象,您需要

我有一个向多个用户发送邮件的项目,我编写了使用应用程序脚本向多个用户发送电子邮件的脚本,但为了使邮件更加个性化,我想以“Hi Abhishek Mehta”的形式启动邮件

使用
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)

文件名=主电子表格下的工作表名称,如sheet1sheet2

`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)

    }`