0

J'ai installé la bibliothèque python-social-auth pour Google OAuth2 dans mon projet Django, et je suis capable de connecter les utilisateurs avec. La bibliothèque stocke les access_token reçus dans la réponse au flux OAuth2 de Google.Comment autoriser un service client API Python Google avec un access_token OAuth2?

Ma question est la suivante: l'utilisation du google-api-python-client semble se fonder sur la création et l'autorisation d'un objet credentials, puis l'utiliser pour construire une API service comme ceci:

... 
# send user to Google consent URL, get auth_code in response 

credentials = flow.step2_exchange(auth_code) 
http_auth = credentials.authorize(httplib2.Http()) 

from apiclient.discovery import build 
service = build('gmail', 'v1', http=http_auth) 

# use service for API calls... 

Depuis que je commence avec un access_token fourni par python-social-auth, comment puis-je créer & autoriser le client API service pour les futurs appels d'API?

Modifier: pour clarifier, le code ci-dessus provient des exemples fournis par Google.

Répondre

2

Étant donné que vous avez déjà le jeton d'accès OAuth2 vous pouvez utiliser la classe AccessTokenCredentials.

La classe oauth2client.client.AccessTokenCredentials est utilisé lorsque vous avez déjà obtenu un jeton d'accès par d'autres moyens. Vous pouvez créer cet objet directement sans utiliser d'objet Flow.

Exemple:

import httplib2 
from googleapiclient.discovery import build 
from oauth2client.client import AccessTokenCredentials 

credentials = AccessTokenCredentials(access_token, user_agent) 
http = httplib2.Http() 
http = credentials.authorize(http) 
service = build('gmail', 'v1', http=http) 
+0

Parfait, merci! – Joe

0

Vous pouvez consulter des exemples fournis par l'API Google Guide, par exemple: envoi de courrier électronique via l'application gmail, https://developers.google.com/gmail/api/guides/sending

+0

Malheureusement tout ce code (que j'ai trouvé) suppose que vous avez 'service: service API Gmail autorisé instance' - Je ne l'ai pas compris comment autoriser une 'service' étant donné un' access_token'. – Joe