def get(self, request):
if not request.user.is_authenticated():
return HttpResponseRedirect(login_url)
default_url = '/'
redirect_url = request.session.get('twitter_next_url')
if not redirect_url:
redirect_url = default_url
verifier = request.GET.get('oauth_verifier')
if not verifier:
failure_url = '{}?status=error'.format(redirect_url)
return HttpResponseRedirect(failure_url)
# oauth token and secret are stored in the session
oauth_token = request.session['twitter_request_token']['oauth_token']
oauth_secret = request.session['twitter_request_token']['oauth_token_secret']
# get the authorized tokens using the verifier
twitter = Twython(CONSUMER_KEY, CONSUMER_SECRET,
oauth_token, oauth_secret)
authorized_tokens = twitter.get_authorized_tokens(verifier)
# create a TwitterAccount object to store token and secret
try:
# check if account already exists
TwitterAccount.objects.get(user=request.user)
success_url = '{}?status=success'.format(redirect_url)
return HttpResponseRedirect(success_url)
except:
twitter_account = TwitterAccount()
twitter_account.user = request.user
twitter_account.access_token = authorized_tokens['oauth_token']
twitter_account.access_secret = authorized_tokens['oauth_token_secret']
twitter_account.save()
success_url = '{}?status=success'.format(redirect_url)
return HttpResponseRedirect(success_url)
评论列表
文章目录