· 7 years ago · Apr 15, 2018, 01:16 AM
1<?php
2session_start();
3include_once("config.php");
4include_once("inc/twitteroauth.php");
5include_once("includes/functions.php");
6
7if(isset($_REQUEST['oauth_token']) && $_SESSION['token'] !== $_REQUEST['oauth_token']) {
8
9 //If token is old, distroy session and redirect user to index.php
10 session_destroy();
11 header('Location: index.php');
12
13}elseif(isset($_REQUEST['oauth_token']) && $_SESSION['token'] == $_REQUEST['oauth_token']) {
14
15 //Successful response returns oauth_token, oauth_token_secret, user_id, and screen_name
16 $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['token'] , $_SESSION['token_secret']);
17 $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
18 if($connection->http_code == '200')
19 {
20 //Redirect user to twitter
21 $_SESSION['status'] = 'verified';
22 $_SESSION['request_vars'] = $access_token;
23
24 //Insert user into the database
25 $user_info = $connection->get('account/verify_credentials');
26 $name = explode(" ",$user_info->name);
27 $fname = isset($name[0])?$name[0]:'';
28 $lname = isset($name[1])?$name[1]:'';
29 $db_user = new Users();
30 $db_user->checkUser('twitter',$user_info->id,$user_info->screen_name,$fname,$lname,$user_info->lang,$access_token['oauth_token'],$access_token['oauth_token_secret'],$user_info->profile_image_url);
31
32 //Unset no longer needed request tokens
33 unset($_SESSION['token']);
34 unset($_SESSION['token_secret']);
35 header('Location: index.php');
36 }else{
37 die("error, try again later!");
38 }
39
40}else{
41
42 if(isset($_GET["denied"]))
43 {
44 header('Location: index.php');
45 die();
46 }
47
48 //Fresh authentication
49 $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
50 $request_token = $connection->getRequestToken(OAUTH_CALLBACK);
51
52 //Received token info from twitter
53 $_SESSION['token'] = $request_token['oauth_token'];
54 $_SESSION['token_secret'] = $request_token['oauth_token_secret'];
55
56 //Any value other than 200 is failure, so continue only if http code is 200
57 if($connection->http_code == '200')
58 {
59 //redirect user to twitter
60 $twitter_url = $connection->getAuthorizeURL($request_token['oauth_token']);
61 header('Location: ' . $twitter_url);
62 }else{
63 die("error connecting to twitter! try again later!");
64 }
65}
66?>