Alain, You are a life saver ... thanks! it worked just fine. I'm assuming I can authenticate over and over with these credentials without having to refresh them until the user revokes our permission, right?
Thanks again Marcelo On Aug 26, 9:01 am, Alain Vongsouvanh <[email protected]> wrote: > 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
