2

ここの例のコードを正確に使用しています:http ://code.google.com/apis/picasaweb/docs/1.0/developers_guide_python.html#Auth

まだサイコロはありません。

これが私が持っている正確なコードです(これはすべてWebサーバーで実行されています):

#!/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私は持っています:

#!/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"

それは次のように解決しgd_client.UpgradeToSessionToken()ています:raise NonAuthSubToken

多分私はここで明白な何かを逃していますか?実行するparameters['token']parameters['token'].value[私にはもっと明白に思えます]同じ結果になります。authsub_tokenを"tacos"に設定すると、同じエラーが発生し、authsub_tokenが単に無効であると私は信じるようになります。

4

1 に答える 1

5

他の人がそれから利益を得ることができるように、私は自分の質問に答えています:

Googleのドキュメントは古くなっています。ここで答えを見つけました:http://www.mail-archive.com/google-calendar-help-dataapi@googlegroups.com/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.authsubtoken =ではなく、gd_client.SetAUthSubTokenを使用します

gd_client.SetAuthSubToken(authsub_token) 
gd_client.UpgradeToSessionToken()

これが他の誰かを助けることを願っています。これは本当のヘッドバンガーでした。

于 2011-07-04T17:41:32.523 に答える