How to allow gdata client without using gdata oauth2 workflow?

I already have access_token and refresh_token, but I canโ€™t figure out how to create an authorized gdata client without going through the whole workflow of generating tokens in gdata.

+3
source share
3 answers

So, I got this job finally. Here is how I did it:

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() 
+4
source

Try the following:

 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 
+1
source

Gdata allows authentication using user information, for example. username / password ... here is the snipet of the code from the python gdata api / gdata-2.0.18 / samples / docs / docs_example.py file that comes with the api

DocsSample class (object): "The DocsSample object shows the feed of the list of documents." "

def init (self, email, password): "" Constructor for the DocsSample object.

 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) 

if you call it like {python./docs_example.py --user username --pw password}, โ€‹โ€‹he will skip asking you about it, but he will ask you about it if you don't. However, this depreciates, but still works in most off-network situations that work directly with Google, as it often takes oauth2 time. This suggests that it has security flaws, in particular, the scope and poor password protection, so it is out of date ... but this should answer your question a little better ...

-1
source

All Articles