Недостаточное разрешение: у запроса была недостаточная ошибка областей проверки подлинности в скрипте приложения с правильными областями вызова API-интерфейса каталога - PullRequest
0 голосов
/ 10 марта 2020

У меня есть проект App Script на Google Sheet. Функция App Script активируется с помощью функции onFormSubmit, поэтому, когда пользователь отправляет форму Google, он добавляется на лист, и в идеале отправляется электронное письмо. Я хотел проверить адрес электронной почты и найти имя пользователя по его адресу электронной почты, чтобы сообщение выглядело лучше.

Однако каждый раз, когда я пытаюсь вызвать API-интерфейс каталога, я получаю следующую ошибку:

GoogleJsonResponseException: API call to directory.users.get failed with error: Insufficient Permission: Request had insufficient authentication scopes. at sendFormByEmail(Code:33:35)

Поскольку у меня уже был включен API-интерфейс каталога в разделе Advanced Serivces, я создал новый .gs файл для тестирования. Работало нормально. Точно такая же строка кода в test.gs дает сбой при запуске в project.gs, и я не понимаю, почему.

Фрагмент кода:

function sendFormByEmail(e) 
{    
  // Remember to replace this email address with your own email address
  var email = "myemail@company.com"; 

  // load spreadsheet where results were added and init default vars
  var s = SpreadsheetApp.getActiveSheet();
  var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
  var message = "";
  var subject = "";
  var term_obj = 
      { 
        timestamp: 0,
        //object creation
      };

  // The variable e holds all the form values in an array.
  term_obj.timestamp = e.namedValues[headers[0]].toString();
  term_obj.termed_user = e.namedValues[headers[2]].toString();
  //more assignments

  // verify the user exists
  Logger.log("Termed user is: " + term_obj.termed_user);
  Logger.log(AdminDirectory.Users.get(term_obj.termed_user));    

Также происходит сбой, когда я вставляю строку состояния c пользователя, которого я знаю, является действительным. https://www.googleapis.com/auth/admin.directory.user.readonly указан в областях применения. Admin Directory API включено. Что происходит?

1 Ответ

0 голосов
/ 10 марта 2020

Я обнаружил свою ошибку - я создал триггер для своей учетной записи без прав администратора. Мне пришлось удалить этот триггер formubmit, а затем заново создать его на моей учетной записи superadmin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...