2016-10-19 2 views
0

Je veux récupérer des contacts Google et pour cela, je suis ce document. Ici, pour authentifier l'utilisateur, j'utilise OAuth 2.0. Mais je ne suis pas capable d'authentifier mon utilisateur.Authentifier l'utilisateur pour récupérer des contacts Google en Python

client_id = 'abcedf' 
    client_secret= 'qwert' 
    scope=(
      'https://www.googleapis.com/auth/contacts.readonly' 
     ), 


credentials = { 
    'client_id':client_id, 
    'client_secret':client_secret, 
    'scope':scope 
} 

auth2token = gdata.gauth.OAuth2TokenFromCredentials(credentials) 

Mais l'authentification ci-dessus ne fonctionne pas, je ne suis donc pas en mesure d'avancer pour récupérer des contacts.

enter image description here

+0

Cette question sera résolu le problème de l'authentification http://stackoverflow.com/questions/10271110/python-oauth2-login-with-google/10546639#10546639 – user5594493

Répondre

0

Puisque vous utilisez Python pour authentifier les utilisateurs, vous pouvez essayer d'utiliser la oauth2client-library for Python sur la façon d'utiliser les objets de flux dans l'authentification:

flow_from_clientsecrets() 

Les oauth2client.client.flow_from_clientsecrets () crée un objet Flow à partir d'un fichier client_secrets.json. Ce fichier au format JSON stocke votre ID client, secret client et autres paramètres OAuth 2.0.

L'exemple suivant montre comment vous pouvez utiliser flow_from_clientsecrets() pour créer un objet de flux:

aide flow_from_clientsecrets()

from oauth2client.client import flow_from_clientsecrets 
... 
flow = flow_from_clientsecrets('path_to_directory/client_secrets.json', 
           scope='https://www.googleapis.com/auth/calendar', 
           redirect_uri='http://example.com/auth_return') 

En utilisant OAuth2WebServerFlow

Malgré son nom, la classe oauth2client.client.OAuth2WebServerFlow est utilisé pour les applications installées et Web. Il est créé en transmettant l'ID client, le secret client et la portée à son constructeur: Vous fournissez au constructeur un paramètre redirect_uri. Cela doit être un URI géré par votre application.

from oauth2client.client import OAuth2WebServerFlow 
... 
flow = OAuth2WebServerFlow(client_id='your_client_id', 
          client_secret='your_client_secret', 
          scope='https://www.googleapis.com/auth/calendar', 
          redirect_uri='http://example.com/auth_return')