Итак, я настроил свою служебную учетную запись с делегированием по всему домену, как описано в этом посте Выполнение делегирования полномочий G Suite для всего домена . В консоли администратора G Suite я разрешил служебной учетной записи использовать область OAuth 2.0:
https://www.googleapis.com/auth/calendar.
Каждый раз, когда я пытаюсь создать событие, я получаю эту ошибку
GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "calendar",
"message" : "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority.",
"reason" : "forbiddenForServiceAccounts"
} ],
"message" : "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority."
}
new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(json.get("client_id").getAsString)
.setServiceAccountPrivateKeyId(json.get("private_key_id").getAsString)
.setServiceAccountPrivateKey(getPrivateKeyFromPkcs8(jsonCreds.get("private_key").getAsString))
.setServiceAccountScopes(SCOPES)
.build()
Это здание с учетными данными Google. Олицетворение не используется, и календарь используется совместно с учетной записью службы.