2011-07-04 4 views
2

에서 upgradetosessiontoken 결과를 통해 SESSION_TOKEN에 대한 authsub_token을 교환하려고 : http://code.google.com/apis/picasaweb/docs/1.0/developers_guide_python.html#AuthGoogle 데이터 API - 여기의 예에서 정확하게 코드를 사용하고 있습니다 "NonAuthSubToken"

아직

없는 주사위입니다. 나는이 다음

#!/usr/bin/python 

import gdata.photos.service 
import gdata.media 
import gdata.geo 

print "content-type:text/html\n" 

def GetAuthSubUrl(): 
    next = 'http://my_domain.com/foo/connect_picasa.cgi' 
    scope = 'http://picasaweb.google.com/data/' 
    secure = False 
    session = True 
    gd_client = gdata.photos.service.PhotosService() 
    return gd_client.GenerateAuthSubURL(next, scope, secure, session); 

authSubUrl = GetAuthSubUrl(); 
print '<a href="%s">Login to your Google account</a>' % authSubUrl 

my_domain/foo/connect_picasa.cgi에서 : 여기

내가있어 정확한 코드 (이 모든 웹 서버에서 실행되는)는 gd_client.UpgradeToSessionToken()에서 구제 것

#!/usr/bin/python 

import gdata.photos.service 
import gdata.media 
import gdata.geo 
import cgi 

parameters = cgi.FieldStorage() 
authsub_token = parameters['token'] 

print "content-type:text/html\n" 

#debugging 
print authsub_token 

gd_client = gdata.photos.service.PhotosService() 
gd_client.auth_token = authsub_token 
gd_client.UpgradeToSessionToken() 

#more debugging 
print "BLINKENLICHTEN" 

다음을 포함합니다 : raise NonAuthSubToken

아마도 여기에 뭔가 분명한 사실을 놓치고 있습니까? parameters['token']parameters['token'].value [나에게 더 분명한 것 같습니다] 같은 결과가 나타납니다. authsub_token을 "tacos"로 설정하면 같은 오류가 발생하여 내 authsub_token이 단순히 무효 인 것으로 믿을 수 있습니다.

구글 문서가 최신입니다 : 다른 사람들이 혜택을 누릴 수 있도록

+0

이미 알아 냈지만 AuthSub 대신 OAuth 2를 사용하는 것이 좋습니다. –

답변

5

난 내 자신의 질문에 대답하고있다. 대답 여기 찾았 http://www.mail-archive.com/[email protected]/msg09180.html이 코드가 어떻게 보일지입니다

:

그것은 않습니다이 실제 값이 필요합니다. 따라서 .value를 지정하거나 parameters.getvalue ("token")를 사용하십시오.

authsub_token = parameters['token'].value 
print "content-type:text/html\n" 

gd_client = gdata.photos.service.PhotosService() 

이것은 중요한 부분입니다. 사용 gd_client.SetAUthSubToken,이 다른 밖으로 사람을 도움 =

gd_client.SetAuthSubToken(authsub_token) 
gd_client.UpgradeToSessionToken() 

희망 gd_client.authsubtoken 없습니다. 이것은 진짜 머리 수리였습니다.

+1

감사! 이것은 나를 도와 줬다. 이제 세션 토큰을 저장하면 어떻게 사용할 때마다 다시 인증 할 필요가 없습니까? –

+0

고마워, 라이언! 훨씬 더 나은 튜토리얼, 다음 구글 문서;) – I159