Sto provando a connettermi a un calendario utilizzando l'API di Google Calendar di Java. L'applicazione java utilizza un account di servizio.Java Google Calendar api "access_denied" sull'account del servizio
Sono il seguente codice:
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();
Sull'ultima riga ottengo un IOException con il messaggio:
ex = (com.google.api.client.auth.oauth2.TokenResponseException) com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request { "error" : "access_denied" }
ho Dubble controllato i valori per l'oggetto GoogleCredential e sono corrette . Ho anche aggiunto https://www.google.com/calendar/feeds/, http://www.google.com/calendar/feeds/ nella mia console di dominio con l'id dell'applicazione come client per autorizzare l'accesso di applicazioni di terze parti
sto dimenticando un passaggio?
Ciao, hai capito? Lo sto provando con scope gmail ma sto ottenendo lo stesso errore .. – zhywu
Ho aggiornato con la risposta;) –
Grazie, l'account di servizio non sembra funzionare per gmail – zhywu