Próbuję połączyć się z kalendarzem za pomocą interfejsu API kalendarza Google Java. Aplikacja Java używa konta usługi.Aplikacja Java Kalendarz Google api "access_denied" na koncie usługi
Mam następujący kod:
java.io.File licenseFile = new java.io.File("39790cb51b361f51cab6940d165c6cda4dc60177-privatekey.p12");
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[email protected]")
.setServiceAccountUser(EMAIL_ADRESS)
.setServiceAccountScopes(CalendarScopes.CALENDAR)
.setServiceAccountPrivateKeyFromP12File(licenseFile)
.build();
client = new com.google.api.services.calendar.Calendar.Builder(
HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName("Google Calendar Sync").build();
Calendar calendar = client.calendars().get(EMAIL_ADRESS).execute();
W ostatnim wierszu otrzymuję IOException z komunikatem:
ex = (com.google.api.client.auth.oauth2.TokenResponseException) com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request { "error" : "access_denied" }
I Dubble sprawdzonej wartości dla obiektu GoogleCredential i są poprawne . Dodałem również https://www.google.com/calendar/feeds/, w mojej konsoli domeny z identyfikatorem aplikacji jako klientem, aby autoryzować dostęp do aplikacji innej firmy
Czy zapomniałem o kroku?
Witam, czy to działa? Próbuję go z zasięgiem Gmaila, ale otrzymuję ten sam błąd .. – zhywu
Zaktualizowałem z odpowiedzią;) –
Dzięki, konto usługi nie działa dla Gmaila – zhywu