Hello, If you already have the access and refresh tokens, you don't have to request another one and can directly authorize your gdata.calendar.client.CalendarClient: token = gdata.gauth.OAuth2Token(client_id=client_id,client_secret=client_secret', scope=' https://www.google.com/calendar/feeds',
user_agent='calendar-cmdline-sample/1.0', access_token='<ACCESS_TOKEN>', refresh_token='<REFRESH_TOKEN>') token.authorize(client) Best, Alain On Thu, Aug 25, 2011 at 7:08 PM, Tasmania <[email protected]> wrote: > hi there, > > I'm migrating my Python application that reads a user's Google > calendar feed from oAuth 1 to oAuth 2. > > * With oAuth 1: > My app would open a browser were user can authenticate with his GMail > account and authorize access, and my app would obtain a user_token, > user_secret for that user, then authenticate to the calendar feed: > > client = gdata.calendar.client.CalendarClient(source='test') > client.auth_token = gdata.gauth.OAuthHmacToken(app_key, > app_secret,user_token,user_secret,gdata.gauth.ACCESS_TOKEN) > > This token, secret pair would be long lived. > > * With oAuth 2: > I registered my app in the Google API console and obtained the oAuth 2 > client_id and client_secret, and modified the app to request the > user's access_token, refresh_token from > https://accounts.google.com/o/oauth2/token > For the GData lib, I applied the gauth.py patch specified here: > http://codereview.appspot.com/4440067/ > > This access_token is short lived. > > I played a little bit with the code posted here > http://codereview.appspot.com/4440067/ > and works ok. > > My questions: > 1. I am obtaining access_token, refresh_token via a curl call from my > app, and I can successfully retrieve both. However, when I apply it to > this code: > > token = > gdata.gauth.OAuth2Token(client_id=client_id,client_secret=client_secret', > scope='https://www.google.com/calendar/ > feeds', > user_agent='calendar-cmdline-sample/ > 1.0') > uri = token.generate_authorize_url() > token.get_access_token(access_token) > > It gives me: > > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/Library/Python/2.6/site-packages/gdata/gauth.py", line 1267, > in get_access_token > raise OAuth2AccessTokenError(error_msg) > gdata.gauth.OAuth2AccessTokenError > > > 2. Assuming I can successfully do #1, I can save the access/refresh > tokens in a DB. Using python gdata lib, how can I use refresh_token to > request another access_token (hence not having to ask the user every > time they use the app to authorize access to it) > > Thanks much in advance! > > > M > > > > > -- > You received this message because you are subscribed to the Google > Groups "Google Calendar Data API" group. > To post to this group, send email to > [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://code.google.com/apis/calendar/community/forum.html > -- Alain Vongsouvanh -- You received this message because you are subscribed to the Google Groups "Google Calendar Data API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://code.google.com/apis/calendar/community/forum.html
