2011-09-12 21 views

risposta

8

io uso http://www-opensocial.googleusercontent.com/api/people/ e https://www.googleapis.com/auth/userinfo#email come la portata dei token di richiesta.

L'URL della risorsa protetta è https://www-opensocial.googleusercontent.com/api/people/@me/@self per ottenere i dati dell'utente corrente.

Ottengo il profilo e il nome G + dell'utente. Non riesco ancora a ricevere l'e-mail dell'utente, ma penso di essere vicino.

+0

stavo cercando di ottenere e-mail utilizzando questo plugin chiamato Hello.js. Recupera il nome dell'ID ma per email non è definito. – Vikram

63

Questo è un modo migliore per ottenere il nome e l'e-mail.

Impostare le scope a:

https://www.googleapis.com/auth/userinfo.email

e

https://www.googleapis.com/auth/userinfo.profile

e utilizzare l'endpoint:

https://www.googleapis.com/oauth2/v1/userinfo?alt=json

che otterrà tutto ciò di cui hai bisogno

+2

Grazie, questo è esattamente ciò di cui avevo bisogno. Per riferimento di altri questo http://googlecodesamples.com/oauth_playground/index.php è estremamente utile per capire i tuoi obiettivi di Google OAuth. –

+0

Questo è brillante – Sid

+6

separare gli ambiti con uno spazio - per qualcuno che ora potrebbe sapere – Nasir

1

Con l'ultima bozza di supporto OAuth 2, Google fornisce token ID di Google, un'implementazione OpenID Connect, che - se si includono gli scopi https://www.googleapis.com/auth/userinfo.profile e https://www.googleapis.com/auth/userinfo.email - fornirà l'indirizzo di posta elettronica (vedere la classe GoogleIdToken nell'ultima API Java). Sfortunatamente, però, questo non fornisce il nome dell'utente. Ma è un modo che richiede un minor numero di roundtrip, se puoi accontentarti solo dell'indirizzo email.

8

Recupera OAuth userinfo utilizzando l'API di Google Python:

https://developers.google.com/api-client-library/python/start/installation https://developers.google.com/api-client-library/python/guide/aaa_oauth

import httplib2 
from apiclient.discovery import build 
from oauth2client.client import OAuth2WebServerFlow 

http = httplib2.Http() 
http = credentials.authorize(http) 

users_service = build('oauth2', 'v2', http=http) 
user_document = users_service.userinfo().get().execute() 
+2

Perché votare questa risposta? Funziona perfettamente, ho risolto il mio problema. Stavo usando l'API G + e volevo anche l'email dell'utente, avevo solo bisogno di fare una richiesta con oauth2. Grazie ! – Aki

+0

Per far funzionare tutto questo è necessario impostare l'attributo scope di dati del pulsante di accesso di Google+ con gli ambiti menzionati nella risposta di Jonathan Mabe. – marcelocra

2

Un client-side JavaScript SDK per l'autenticazione con OAuth2 (e OAuth1 con un proxy OAuth) servizi web e l'interrogazione il loro riposo API. HelloJS Standardizza percorsi e risposte a API comuni come Google Data Services, Facebook Graph e Windows Live Connect. È modulare in modo tale che la lista sta crescendo. Basta codice spaghetti!

http://adodson.com/hello.js/

Problemi correlati