Есть ли способ извлечь контактную информацию из группы Google?

У меня есть сценарий, который извлекает все адреса электронной почты из группы Google.

Мне нужно извлечь полное имя, связанное с каждым адресом электронной почты, эта информация хранится в приложении контактов.

Похоже, я могу извлекать только адреса электронной почты и информацию о ролях из групп, есть ли способ затем связать эту информацию с приложением контактов, чтобы извлечь их полные имена?

Стоит отметить, что у меня нет доступа администратора, поэтому я не могу использовать Admin SDK.

Это сценарий, который я использую для получения адресов электронной почты:

function listGroupMembers() {
  var GROUP_EMAIL = "email@emailcom";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  var users = group.getUsers();
    var str = "Group " + GROUP_EMAIL + " has " + users.length +
  " members: ";
  for (var i = 0; i < users.length; i++) {
    var user = users[i];
    str = str + user.getEmail() + ", ";
  }
  Logger.log(str);
  var range = SpreadsheetApp.getActiveSheet().getActiveRange().setValue(str)
  }

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

function getUserName(){
var contacts = ContactsApp.getContactsByEmailAddress(query);
for (var i in contacts) {
  Logger.log(contacts[i].getFullName());
}}

Любая помощь будет принята с благодарностью, я далеко не эксперт в этом!


person Ruby    schedule 07.01.2020    source источник


Ответы (1)


Вы можете напрямую подключить Группы Google и ContactApp, не сохраняя адреса электронной почты в электронной таблице.

Образец

function listGroupMembers() {
  var GROUP_EMAIL = "email@emailcom";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  var users = group.getUsers();
  var str = "Group " + GROUP_EMAIL + " has " + users.length +
  " members: ";
  for (var i = 0; i < users.length; i++) {
    var user = users[i];
    var email = user.getEmail();
    var contact =  ContactsApp.getContact(email);
    if(contact!=null){
      Logger.log(contact.getFullName());
      str=str+contact.getFullName()+" ";
      }
    }
  }
person ziganotschka    schedule 07.01.2020
comment
Извините - надеюсь, вы снова сможете помочь! Как мне затем установить эти значения в столбце на моем листе, я не могу заставить его регистрировать результаты в виде строки для использования (даже при использовании JSON.stringify) и продолжаю получать эту ошибку: не удается найти метод setValues ​​( строка) любая помощь приветствуется! - person Ruby; 07.01.2020
comment
Результат contact.getFullName() уже является строкой. Я просто изменил свой ответ, чтобы увидеть, как вы можете добавить результаты к уже существующей строке. - person ziganotschka; 07.01.2020