사용자의 Google 캘린더 피드를 읽는 Python 애플리케이션을 oAuth 1에서 oAuth 2로 마이그레이션하려고합니다. OAuth를 1로Python gdata 및 oAuth 2를 사용하여 캘린더에 인증
: 브라우저를 열 것 내 응용 프로그램은 사용자가 자신의 Gmail 계정 인증 및 액세스 권한을 부여하고, 내 응용 프로그램이 user_token를 취득 할 수 있었다, 해당 사용자에 대한 user_secret은 다음 일정에 인증 피드 :
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)
이 토큰 비밀 쌍 오래 살았 될 것이다. OAuth를 2로
- : 나는, 구글 API 콘솔에서 내 응용 프로그램을 등록하고 OAuth를 2 CLIENT_ID 및 client_secret을 획득하고,의 GData lib에 들어 https://accounts.google.com/o/oauth2/token 에서 refresh_token도 사용자의 access_token이를 요청하는 응용 프로그램을 수정 이 access_token은 짧은 살고있다 http://codereview.appspot.com/4440067/
: 나는 여기에 지정된 gauth.py 패치를 적용했다.
여기에 게시 된 코드로 조금 놀았습니다 http://codereview.appspot.com/4440067/ 괜찮습니다.
내 질문 : - 난 access_token이 취득하고
, 내 응용 프로그램에서 컬 호출을 통해 refresh_token도, 나는 성공적으로 모두를 검색 할 수 있습니다. 내가 에이 코드를 적용 그러나 :
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)
그것은 저를 준다 : 나는 성공적으로 위의 작업을 수행 할 수 있습니다
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
-Assuming, 나는이 DB에 액세스/새로 고침 토큰을 절약 할 수 있습니다. 파이썬 gdata lib를 사용하여 refresh_token을 사용하여 다른 access_token을 요청하려면 어떻게해야합니까? (따라서 사용자가 앱을 사용할 때마다 액세스 권한을 요청할 필요가 없습니다)
미리 감사드립니다.
M