¿Cómo autorizo ​​a un cliente gdata sin usar el flujo de trabajo gdata oauth2?

Ya tengo un access_token y refresh_token, pero no puedo encontrar una manera de crear un cliente gdata autorizado sin pasar por todo el flujo de trabajo de generación de token en gdata.

Así que tengo este trabajo finalmente. Así es como lo hice:

client = gdata.contacts.client.ContactsClient() credentials = gdata.gauth.OAuth2Token(client_id = 'client_id', client_secret = 'client_secret', scope = 'https://www.google.com/m8/feeds/', user_agent = auth.user_agent, # This is from the headers sent to google when getting your access token (they don't return it) access_token = auth.access_token, refresh_token = auth.refresh_token) credentials.authorize(client) contacts = client.get_contacts() 

Prueba esto:

 import httplib2 from oauth2client.client import OAuth2Credentials credentials = OAuth2Credentials('access_token', client_id, client_secret, 'refresh_token', 'token_expiry','token_uri','user_agent') # the client_id and client_secret are the ones that you receive which registering the App # and the token_uri is the Redirect url you register with Google for handling the oauth redirection # the token_expiry and the user_agent is the one that you receive when exchange the code for access_token http = httplib2.Http() http = credentials.authorize(http) service = build('analytics', 'v3', http=http) # this will give you the service object which you can use for firing API calls 

Gdata le permite autenticarse usando la información del usuario, ej. nombre de usuario / contraseña … aquí hay un snipet de código del archivo gdata python api /gdata-2.0.18/samples/docs/docs_example.py que viene con el api

clase DocsSample (objeto): “” “Un objeto DocsSample muestra la fuente de la lista de documentos.” “”

def init (auto, correo electrónico, contraseña): “” “Constructor para el objeto DocsSample.

 Takes an email and password corresponding to a gmail account to demonstrate the functionality of the Document List feed. Args: email: [string] The e-mail address of the account to use for the sample. password: [string] The password corresponding to the account specified by the email parameter. Returns: A DocsSample object used to run the sample demonstrating the functionality of the Document List feed. """ source = 'Document List Python Sample' self.gd_client = gdata.docs.service.DocsService() self.gd_client.ClientLogin(email, password, source=source) # Setup a spreadsheets service for downloading spreadsheets self.gs_client = gdata.spreadsheet.service.SpreadsheetsService() self.gs_client.ClientLogin(email, password, source=source) 

si invoca esto como {python ./docs_example.py –usuario username –pw contraseña} omitirá la solicitud, pero le preguntará si no lo hace. Sin embargo, esto se está depreciando, pero aún funciona en la mayoría de las situaciones fuera de las redes que trabajan directamente con Google, ya que a menudo esto requerirá outh2. Dicho esto, tiene inconvenientes de seguridad, específicamente el scope y una protección de contraseña deficiente, por lo que está en desuso … pero eso debería responder a su pregunta un poco mejor …