2

我正在使用此处示例中的代码:http ://code.google.com/apis/picasaweb/docs/1.0/developers_guide_python.html#Auth

还是没有骰子。

这是我得到的确切代码(这都是在网络服务器上运行的):

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

我正在回答我自己的问题,以便其他人可以从中受益:

谷歌文档已过时。在这里找到答案: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.SetAUthSubToken,而不是 gd_client.authsubtoken =

gd_client.SetAuthSubToken(authsub_token) 
gd_client.UpgradeToSessionToken()

希望这可以帮助其他人。这是一个真正的头脑风暴。

于 2011-07-04T17:41:32.523 回答