基本上我的Java应用程序正在为每个Google域用户创建一个或几个Google日历。
为了克服日历创建限制(每几小时左右25个cals),我实施了冒充每个所述用户的服务帐户。所述服务帐户具有在管理控制台中定义的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 = "path\to.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();
为什么我不能冒充群组用户名来创建群组日历? 如何以其他方式创建几百个组日历?
答案 0 :(得分:0)
Google支持称,无法模仿群组用户。
我必须通过冒充某些群组用户创建日历并与群组共享。