· 4 years ago · Oct 15, 2020, 11:50 AM
1def twitter_login(request):
2 consumer_key = ""
3 consumer_secret = ""
4 auth = tweepy.OAuthHandler(consumer_key, consumer_secret, 'http://127.0.0.1:8000/twitter_callback')
5
6 try:
7 redirect_url = auth.get_authorization_url(signin_with_twitter=True)
8 except tweepy.TweepError:
9 return(HttpResponse("<h1>Error! Failed to get request token.</h1>"))
10 return(redirect(redirect_url))
11
12def twitter_callback(request):
13 consumer_key = ""
14 consumer_secret = ""
15 oauth_verifier = request.GET.get('oauth_verifier')
16 oauth_token = request.GET.get('oauth_token')
17
18 #check if verifier var is null
19 if oauth_verifier == None:
20 return(HttpResponse("<h1>Error! Failed to get oauth_verifier token.</h1>"))
21 #if verifier is valid, get access tokens
22 else:
23 auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
24 auth.request_token = {
25 'oauth_token': oauth_token,
26 'oauth_token_secret': oauth_verifier,
27 }
28 auth.get_access_token(oauth_verifier)
29 access_token = auth.access_token
30 access_token_secret = auth.access_token_secret
31 #get twitter handle of user
32 auth.set_access_token(access_token, access_token_secret)
33 api = tweepy.API(auth)
34 handle = api.me().screen_name
35
36 #save handle and tokens to database
37 twitterCredentials(twitter_handle=handle, access_token=access_token, access_token_secret=access_token_secret).save()
38