Ответ:
Поскольку учетные записи служб не являются частью вашего домена, они не могут создавать собственные календари с conferenceSolution
из hangoutsMeet
.
* 1008. * Дополнительная информация:
Мне потребовалось немного времени, чтобы понять это, но в соответствии с документацией для ресурса Events
API Календаря типы решений конференции следующие:
И от Документация учетной записи службы Google Cloud :
Сервисные учетные записи являются , а не членами вашего домена G Suite, в отличие от учетных записей пользователей. Например, если вы предоставите общий доступ к ресурсам всем членам вашего домена G Suite, они не будут переданы учетным записям служб. Точно так же любые активы, созданные учетной записью службы, не могут принадлежать или управляться администраторами G Suite.
Результатом этого является то, что учетная запись службы не является частью вашего домена, и поэтому не может создать календарь для себя , который имеет значение hangoutsMeet
для типа решения конференции.
Если вы хотите, чтобы sh Календарь имел этот тип решения конференции, вы должны создать календарь так, чтобы он принадлежал члену вашего домена G Suite; то есть, попросите служебную учетную запись создать календарь, выдавая себя за члена домена G Suite.
Причина, по которой вы получаете правильный результат с помощью функции Try this API
Calendars: insert
объясняется тем, что вызов API авторизуется как пользователь домена G Suite.
Создание учетных данных учетной записи службы:
При выполнении аутентификации необходимо настроить пользователя. что вы будете sh олицетворять перед сборкой:
GoogleCredential.Builder b = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jacksonFactory)
.setServiceAccountId(serviceAccountId)
.setServiceAccountPrivateKey(yourPrivateKey)
.setServiceAccountScopes(scopes)
//the user whom you want to impersonate here:
.setServiceAccountUser(email-to-impersonate);
credential = b.build();
return credential;
Или с файлом pk12:
GoogleCredential.Builder b = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(serviceAccountId)
.setServiceAccountPrivateKeyFromP12File(pk12)
.setServiceAccountScopes(scopes)
//the user whom you want to impersonate here:
.setServiceAccountUser(email-to-impersonate);
credential = b.build();
return credential;
Я надеюсь, что это полезно для вас!
Ссылки: