Похоже, в конце прошлого года Google изменил поведение API календаря, не позволяя учетным записям служб создавать события календаря с посетителями.
https://github.com/googleapis/google-api-php-client/issues/1725
https://support.google.com/calendar/thread/16769831?hl=en
Итак, чтобы создать мероприятие с участниками, необходимо убедиться, что домен- широкое делегирование настраивается для учетной записи службы, а затем укажите целевую / делегатскую учетную запись для календаря, в который учетная запись службы пытается записывать события. Я сделал первое, а второе у меня есть следующий код ...
const jwt = jsonwebtoken.sign({
iss: GOOGLE_CALENDAR_SERVICE_ACCOUNT_EMAIL,
scope: SCOPES,
aud: 'https://oauth2.googleapis.com/token',
iat: currentUnixTimeInSeconds,
exp: currentUnixTimeInSeconds + 3600,
sub: GOOGLE_CALENDAR_TARGET_ACCOUNT_EMAIL,
},
privateKey,
{
algorithm: 'RS256',
header: {
alg: 'RS256',
typ: 'JWT',
},
}
);
... и затем позвоните https://oauth2.googleapis.com, чтобы получить токен на предъявителя, но это всегда ошибки. (с «Invalid JWT: проверка неуспешной аудитории. Правильная аудитория ...», следующая за тем, что выглядит как URL-адрес маркера длинного носителя »
https://oauth2.googleapis.com/token?grant_type=urn: ietf: params: oauth: grant -тип: jwt-bearer & assertion = ...
)
Как правильно олицетворять учетные записи служб с API Календаря Google?