Я разрабатываю приложение, которое использует API Календаря Google для вставки / обновления / удаления событий в Календаре Google.Я использую аутентификацию oauth2 и включил API календаря в своем проекте Google.Это мой код:
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
String TOKENS_DIRECTORY_PATH = "PATH_TOKEN";
String appName = "APP_NAME"
String clientId = "CLIENT_ID";
String clientSecret = "CLIENT_SECRET";
String token = "{\"installed\":{\"client_id\":\"" + clientId + "\",\"client_secret\":\"" + clientSecret +"\"}}";
InputStream in = new ByteArrayInputStream(token.getBytes(StandardCharsets.UTF_8));
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, Collections.singletonList(CalendarScopes.CALENDAR_EVENTS)).setDataStoreFactory(new FileDataStoreFactory(TOKENS_DIRECTORY_PATH) + TOKENS_DIRECTORY_PATH))).setAccessType("offline").build();
Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
// Build a new authorized API client service.
service = new Calendar.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(appName).build();
Event appointment = new Event();
... // creation event
service.events().insert("MAIL_ROOM", appointment).setSendNotifications(true).execute();
Я могу вставить / обновить / удалить событие в календаре пользователей, но если я пытаюсь вставить событие в комнату Google, я получаю эту ошибку:
403 prohibited
{
"code": 403,
"mistakes" : [ {
"domain": "calendar",
"message": "You must have author access to this calendar.",
"reason": "requiredAccessLevel"
}],
"message": "You must have access as a writer to this calendar."
}.
Я могу обновлять и удалять события из календаря комнат Google, но не могу создать событие.Есть ли ограничения в API Календаря Google или есть способ создать событие в календаре комнаты?
Спасибо