我剛更新爲Twython 2.3.4,但現在我的Twitter認證停止工作。它在'auth_props = twitter.get_authentication_tokens()'行失敗。任何想法出了什麼問題?提前致謝!Twython 2.3.4的Twitter認證失敗,錯誤:401,無法驗證oauth簽名和令牌
的Python代碼做Twitter的使用AUTH是Twython如下:
def begin_auth(request):
twitter = Twython(
twitter_token = TWITTER_KEY,
twitter_secret = TWITTER_SECRET,
callback_url = request.build_absolute_uri(reverse('portnoy.views.thanks'))
)
# Request an authorization url to send the user to...
auth_props = twitter.get_authentication_tokens()
我對上面的線以下錯誤:TwythonAuthError:「看來事情不能和您的OAuth垃圾進行驗證錯誤:401消息:無法驗證的OAuth簽名和令牌」
# Then send them over there, durh.
request.session['request_token'] = auth_props
return HttpResponseRedirect(auth_props['auth_url'])
def thanks(request, redirect_url='/'):
c = RequestContext(request)
# for permanent ones and store them...
twitter = Twython(
twitter_token = TWITTER_KEY,
twitter_secret = TWITTER_SECRET,
oauth_token = request.session['request_token']['oauth_token'],
oauth_token_secret = request.session['request_token']['oauth_token_secret']
)
# Retrieve the tokens we want...
authorized_tokens = twitter.get_authorized_tokens()
request.session['request_tokens'] = authorized_tokens
debug('thanks', request.session['request_tokens'])
user = User.objects.filter(username=authorized_tokens['screen_name'])
if user.exists():
user = user[0]
user.backend='django.contrib.auth.backends.ModelBackend'
auth.login(request,user)
else:
return render_to_response('twitter_register.html', c)
return HttpResponseRedirect(redirect_url)
我以前沒有用過twython,我可以說一些好東西:http://code.google.com/p/python-twitter/ –
你可以仔細檢查你的TWITTER_KEY和TWITTER_SECRET嗎? –
TWITTER_KEY和TWITTER_SECRET都是正確的,只需再次檢查;) – Arman