У меня есть проект 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
включено. Что происходит?