Ошибка с OAuth в клиентских библиотеках протокола данных Google - PullRequest
3 голосов
/ 21 февраля 2011

Когда я тестировал код в "OAuth в клиентских библиотеках протокола данных Google (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 Ответ

3 голосов
/ 02 сентября 2011

Сгенерированный auth_url не является строкой.

Просто сделай:

return self.redirect(str(auth_url))

и это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...