Аутентификация учетной записи сервиса из скрипта приложения - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь добавить участников в группу, используя API.Я пишу код в инструменте сценария Google, однако получаю сообщение об ошибке:

{
     "error": {
         "errors": [
             {
                 "domain": "global",
                 "reason": "required",
                 "message": "Login Required",
                 "locationType": "header",
                 "location": "Authorization"
             }
         ],
         "code": 401,
         "message": "Login Required"
     }
}

Я уже добавил области в домене G SUITE, я уже создал учетную запись службы, ключ API, OAuth2.0 балл.Мой запрос в настоящее время таков:

  var headers = {
    "apiKey" : "****",
    "clientId" : "*****.apps.googleusercontent.com"
  }

  var payload = {
    "email": user,
    "role": "MEMBER"
  }

  var options = {
    "method" : "post",
    "payload" : payload,
    "headers" : headers
  };

  var response = UrlFetchApp.fetch("https://www.googleapis.com/admin/directory/v1/groups/***/members", options);

Чего не хватает или что я делаю не так?Я прочитал всю документацию и до сих пор не могу понять, что не так.

1 Ответ

0 голосов
/ 13 сентября 2018

Когда я кодировал с помощью Google Scripts, я нашел сервис, который имеет нужную мне функцию.Он называется Directory и находится внутри раздела Admin SDK Google.Ниже приведена ссылка, которая ведет к документации, где у вас есть примеры:

https://developers.google.com/apps-script/advanced/admin-sdk-directory

В конце мой код выглядел так:

function insertMembers(){
  var ss = SpreadsheetApp.getActive()
  var sheet = ss.getSheetByName("")

  var membersInSheet = sheet.getRange(27, 3, sheet.getLastRow())
  var values = membersInSheet.getNumRows()
  var groupId = "email group"

  //Logger.log(membersInSheet)

  for (var i = 0; i < values; i++){
    var getMember = sheet.getRange(27+i, 3).getValue();

    var member = {
      email: getMember,
      role: 'MEMBER'
    };

    if (member != ''){
      var memberAdd = AdminDirectory.Members.insert(member, groupId);
      Logger.log(memberAdd);

    }
  }
}

Без аутентификации и без отдыха!

...