Google数据协议客户端库中的OAuth出错

时间:2011-02-21 09:31:49

标签: entity-framework oauth-2.0

当我在“Google数据协议客户端库中的OAuth(http://code.google.com/apis/gdata/docs/auth/oauth.html)”中测试代码时,我总是遇到以下错误。任何人都可以给我一个提示吗?

错误代码:

  File "D:\PROJ\GAE\proj2\proj2.py", line 262, in get
    return self.redirect(auth_url)
  File "C:\DEV\google_appengine\v1.4.2\google\appengine\ext\webapp\__init__.py", line 380, in redirect
    absolute_url = urlparse.urljoin(self.request.uri, uri)
  File "C:\DEV\Python\v2.5.4\lib\urlparse.py", line 253, in urljoin
    urlparse(url, bscheme, allow_fragments)
  File "C:\DEV\Python\v2.5.4\lib\urlparse.py", line 154, in urlparse
    tuple = urlsplit(url, scheme, allow_fragments)
  File "C:\DEV\Python\v2.5.4\lib\urlparse.py", line 193, in urlsplit
    i = url.find(':')
AttributeError: 'Uri' object has no attribute 'find'

以下是我想要获取Google通讯录信息的代码:

class Test(webapp.RequestHandler):
    def get(self):
        client = gdata.contacts.client.ContactsClient(source = 'www.mydomainname.com')
        callback_url = 'http://%s/test2' % self.request.host

        request_token = client.GetOAuthToken(['http://www.google.com/m8/feeds/'],
                                                     callback_url,
                                                     GOOGLE_KEY,
                                                     GOOGLE_SECRET)

        gdata.gauth.AeSave(request_token, 'request_token')

        auth_url = request_token.generate_authorization_url(google_apps_domain = None)
        return self.redirect(auth_url) #Error?!

提前致谢!

1 个答案:

答案 0 :(得分:3)

生成的auth_url不是字符串。

只是做:

return self.redirect(str(auth_url))

它会起作用。