2009-09-03 155 views
5

我正试图在0123ng的appengine(python)中实现“twitter oauth”。401未经授权使用oauth-python-twitter

我用下面的代码,将用户重定向到Twitter的:

twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET) 
request_token = twitter.getRequestToken() 
response.set_cookie('request_token', request_token.to_string()) 
signin_url = twitter.getAuthorizationURL(request_token) 
return redirect_to(signin_url) 

用户成功重定向,但是当他回来在我的应用我收到以下错误: HTTP错误401:未经授权

File "/base/data/home/apps/app/controllers/users.py", line 46, in authenticate 
    access_token = twitter.getAccessToken()  
    File "/base/data/home/apps/app/lib/python/oauthtwitter.py", line 183, in getAccessToken 
    token = self._FetchUrl(url, no_cache=True) 
    ...... 
    File "/base/python_dist/lib/python2.5/urllib2.py", line 506, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 

当我尝试获取访问令牌时,出现错误。

request_token = request.cookies['request_token'] 
token = oauth.OAuthToken.from_string(request_token) 
twitter = OAuthApi(app_globals.CONSUMER_KEY, app_globals.CONSUMER_SECRET, token) # everything works good 
access_token = twitter.getAccessToken() # then, i receive the error. 

任何想法? 谢谢!

回答

0

确保用户(或您的自己)在他/你的Twitter帐户的Twitter认证部分输入了您的应用名称,以便您的应用有权连接。

2

我解决了问题,只是使用干线版本的oauth-python-twitter和python-twitter。