Ho difficoltà a utilizzare Google new Admin SDK. In particolare l'API Directory che utilizza Oauth2. Penso di esserci quasi ma non riesco a recuperare i dettagli di un utente utilizzando l'API Directory (sto usando un dominio Google Education Edition).API di amministrazione Google che utilizza Oauth2 per un account di servizio (Education Edition) - 403 Errore
Fondamentalmente quello che sto cercando di fare è scrivere uno script python che acconsenta o disintegra gli utenti in base al loro stato di iscrizione che è gestito dal nostro AD. Ho uno script che usa Oauth1 ma voglio aggiornarlo per usare Oauth2.
Ecco uno snippet di codice basato su alcuni esempi che ho trovato.
f = file('test_key.p12', 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(
'[email protected]',
key,
scope= 'https://www.googleapis.com/auth/admin.directory.user')
http = httplib2.Http()
http = credentials.authorize(http)
service = build(serviceName='admin', version='directory_v1', http=http)
lists = service.users().get(userKey='[email protected]').execute(http=http)
pprint.pprint(lists)
Questo pezzo di codice sembra connettersi correttamente ma quando provo a eseguire la query ottengo un errore 403.
ERRORE: https://www.googleapis.com/admin/directory/v1/users/[email protected]?alt=json tornato "Non autorizzato ad accedere a questa risorsa/api">
Il mio primo pensiero è stato perché non ho attivato questa API sulla console degli amministratori (Google API's console) ma ce l'ho. (In realtà ho attivato Admin SDK e non l'API Directory perché non è presente alcuna API di directory da attivare e, visto che è parte di Admin SDK, funzionerebbe?).
C'è un altro passaggio che mi manca o che ho fatto un errore stupido da qualche parte?
Hai capito? Mi chiedo se l'API Directory (a.k.a. Admin SDK API), in particolare, possa essere utilizzata con un account di servizio e OAuth 2.0. (So che altre API possono farlo). Ho la sensazione che sia possibile con OAuth 1.0, ma non l'ho ancora provato. –
@EricWalker - Sì, vedere i commenti di seguito. – Bruce