在Google日历API中创建组日历



所以我的Java应用程序基本上是为我们的每个谷歌域用户创建一个或几个谷歌日历。

为了克服日历创建限制(大约每几个小时25卡),我实现了模拟每个用户的服务帐户。所述服务帐户具有在管理控制台中定义的API访问权限。

我已经通过设置成功创建了所有这些日历:

.setServiceAccountUser("username@ourdomain.com").

但现在我需要为每个小组创建一个日历。如果我尝试模拟组用户(.setServiceAccountUser("groupname@ourdomain.com")),我得到这样的错误:

400 Bad Request
{
"error" : "access_denied",
"error_description" : "Requested scopes not allowed:
https://www.googleapis.com/auth/calendar 
https://www.googleapis.com/auth/calendar.readonly"
}

相关代码:

private static HttpTransport httpTransport;
private static final String SERVICE_ACCOUNT_EMAIL = "serviceaccountetcetera@developer.gserviceaccount.com";
private static final String SERVICE_ACCOUNT_PKCS12_FILE_PATH = "pathto.p12";    
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(CalendarScopes.all())
.setServiceAccountPrivateKeyFromP12File(new java.io.File(
SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.setServiceAccountUser("groupname@ourdomain.com")
.build();
client = new com.google.api.services.calendar.Calendar.Builder(httpTransport, 
JSON_FACTORY, credential).setApplicationName(
APPLICATION_NAME).build();
Calendar entry = new Calendar();
entry.setSummary("summary");
Calendar result = client.calendars().insert(entry).execute();

为什么我不能模拟群组用户名来创建群组日历?如何以其他方式创建几百个群日历?

谷歌支持表示,不可能模拟群组用户。

我必须通过模拟某个群用户来创建日历,并将其与某个群共享。

相关内容

  • 没有找到相关文章

最新更新