2012-12-22 11 views
7

Si tratta di un follow-on dal mio thread su un errore di 401 quando si utilizza l'API di Google Calendar e OAuth2, che può essere trovato here403 messaggio Forbidden quando si chiama il v3 Google Calendar API utilizzando un account di servizio tramite OAuth 2.0

Questo contiene i dettagli della configurazione dell'account che porta alla mia prossima domanda, quindi non mi ripeterò in questa discussione.

OK, quindi quando quando chiamo il codice seguente per aggiornare un evento del calendario ottengo un errore 403 vietato.

for (Event event : events.getItems()) 
{ 
    event.setSummary("XXX" + event.getSummary()); 

    Event updatedEvent = calendar.events().update(CALENDAR_ID, event.getId(), event).execute(); 
} 

Ecco il messaggio di errore restituito:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden 
{ 
    "code" : 403, 
    "errors" : [ { 
     "message" : "Forbidden" 
    } ], 
    "message" : "Forbidden" 
} 

Cosa ho provato? Beh, ho riletto il (piuttosto scadente) la documentazione di Google sugli account di servizio, ri-controllato le mie regolazioni API conto Console, provato a cambiare il codice che costruisce le credenziali (questo porta ad altri errori in modo da è una regressione sul mio thread precedente) .

In breve, niente funziona, quindi c'è qualcosa di ovvio che mi manca?

risposta

23

Risolto, grazie a this post.

Bisogna condividere il calendario dal tuo account Google Calendar con l'e-mail account servizio che viene generato nella API Console di Google, ad esempio, [email protected].

Ora posso aggiornare il mio calendario dal mio servizio web.

+0

HII può u plz dimmi come posso condividere il calendario da console Google? Ho già condivido questo calendario per il mio calendario Android, ma non ricevendo alcuna soluzione? Ancora ottenuto questo errore. – Google

+1

Ricevo un errore con 403 vietato. quando ho condiviso il mio calendario mostra il mio ID e-mail come proprietario, per favore come configurare ??? – Sadikhasan

+2

Ho lo stesso problema. La soluzione è: 1) Controllare tutte le credenziali si imposta per Calendar.Builder(). 2) condividere il calendario con il tuo account di servizio e assicurarsi che "Apportare modifiche agli eventi" viene selezionato in "Impostazioni di autorizzazioni". – Emerald214

2

Avevo anche lo stesso errore anche dopo aver condiviso il calendario come nella risposta di Justin. Dopo aver confrontato con un altro campione di lavoro capito che ho impostato

var SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"]; 

invece di

var SCOPES = ["https://www.googleapis.com/auth/calendar"]; 

Spero che questo aiuti chiunque abbia fatto un errore simile e questo errore.

Problemi correlati