Цель предоставления учетной записи службы всего домена состоит в том, чтобы эти учетные записи имели возможность доступа к данным от имени пользователей в домене.
Если вы предоставите ему домен В целом, но не «олицетворяют» какую-либо учетную запись, учетная запись службы действует так, как если бы вы не предоставили эти полномочия: она пытается получить доступ к своим собственным календарям.
Когда учетная запись службы олицетворяет другого пользователя в домен (то есть, когда он действует от имени пользователя), учетная запись службы может получать доступ к ресурсам, к которым этот пользователь может получить доступ.
Чтобы выдать себя за другого пользователя, необходимо указать адрес электронной почты пользователя. В моем случае я использую библиотеку Node.JS, и мой код олицетворения выглядит следующим образом:
const auth = new google.auth.JWT(
config.client_email,
null,
config.private_key,
["https://www.googleapis.com/auth/calendar.events"],
"!!! user email to impersonate !!!!",
);
Более того, если вам нужно заполнить массив чел. [], Вам необходимо авторизовать учетную запись службы для Отправить электронную почту. Потому что вы получаете неавторизованную ошибку.
Чтобы сделать это, вам нужно добавить область https://www.googleapis.com/auth/gmail.send в административную консоль вашего домена G Suite.
Вы можете найти больше здесь: https://issuetracker.google.com/issues/14170493