Campustream 1.0
A social network MQP for WPI
|
00001 <? 00002 include_once $GLOBALS['APPROOT'] . 'application/lib/twitteroauth/twitteroauth.php'; 00003 00008 class Twitter_Controller extends Controller { 00009 public $enable_session = true; 00010 00015 public function new_action() { 00016 if (!$this->session->get('authenticated')) { 00017 return Hub::redirect('/login'); 00018 } 00019 00020 $twitter = twitter::api(); 00021 $request_token = $twitter->getRequestToken($GLOBALS['TWITTER_CALLBACK']); 00022 00023 $this->session->set('oauth_token', $request_token['oauth_token']); 00024 $this->session->set('oauth_secret', $request_token['oauth_token_secret']); 00025 00026 switch ($twitter->http_code) { 00027 case 200: 00028 if (isset($_GET['r'])) { 00029 $this->session->set('redirect', $_GET['r']); 00030 } 00031 00032 $url = $twitter->getAuthorizeURL($this->session->get('oauth_token')); 00033 Hub::redirect($url); 00034 break; 00035 default: 00036 echo "Error connecting with Twitter, please try again! Error code: {$twitter->http_code}"; 00037 } 00038 } 00039 00044 public function create() { 00045 if (!$this->session->get('authenticated')) { 00046 return Hub::redirect('/login'); 00047 } 00048 00049 if (isset($_REQUEST['oauth_token']) && $this->session->get('oauth_token') !== $_REQUEST['oauth_token']) { 00050 $this->session->set('oauth_token', null); 00051 $this->session->set('oauth_secret', null); 00052 00053 echo "Old OAuth token, please try signing in again."; 00054 return false; 00055 } 00056 00057 $oauth_token = $this->session->get('oauth_token'); 00058 $oauth_secret = $this->session->get('oauth_secret'); 00059 00060 $twitter = new TwitterOAuth($GLOBALS['TWITTER_CONSUMER_KEY'], $GLOBALS['TWITTER_CONSUMER_SECRET'], $oauth_token, $oauth_secret); 00061 $access_token = $twitter->getAccessToken($_REQUEST['oauth_verifier']); 00062 00063 $this->session->set('oauth_token', false); 00064 $this->session->set('oauth_secret', false); 00065 00066 $user = sess::getUser(); 00067 $tweeter = $twitter->get('account/verify_credentials'); 00068 00069 $usertwitter = null; 00070 if ($user->has_twitter()) { 00071 $usertwitter = $user->twitter(); 00072 } else { 00073 $usertwitter = new Usertwitter_Model(); 00074 $usertwitter->user_id = $user->id; 00075 $usertwitter->twitter_id = $tweeter->id; 00076 } 00077 00078 $usertwitter->oauth_token = $access_token['oauth_token']; 00079 $usertwitter->oauth_secret = $access_token['oauth_token_secret']; 00080 00081 $usertwitter->username = $tweeter->screen_name; 00082 $usertwitter->name = $tweeter->name; 00083 $usertwitter->website = $tweeter->url; 00084 $usertwitter->bio = $tweeter->description; 00085 $usertwitter->location = $tweeter->location; 00086 $usertwitter->avatar_url = $tweeter->profile_image_url; 00087 $usertwitter->geo_enabled = $tweeter->geo_enabled; 00088 $usertwitter->utc_offset = $tweeter->utc_offset; 00089 00090 $usertwitter->profile_background_color = $tweeter->profile_background_color; 00091 $usertwitter->profile_text_color = $tweeter->profile_text_color; 00092 $usertwitter->profile_link_color = $tweeter->profile_link_color; 00093 $usertwitter->profile_sidebar_fill_color = $tweeter->profile_sidebar_fill_color; 00094 $usertwitter->profile_sidebar_border_color = $tweeter->profile_sidebar_border_color; 00095 $usertwitter->profile_background_image_url = $tweeter->profile_background_image_url; 00096 $usertwitter->profile_background_tile = 0; 00097 if($tweeter->profile_background_tile) { $usertwitter->profile_background_tile = 1; } 00098 00099 $usertwitter->save(); 00100 00101 $user->twitter = $usertwitter; 00102 00103 if ($this->session->get('redirect')) { 00104 $redirect = $this->session->get('redirect'); 00105 $this->session->set('redirect', false); 00106 00107 Hub::redirect($redirect); 00108 } else { 00109 Hub::redirect('/'); 00110 } 00111 } 00112 00116 public function destroy() { 00117 if (!$this->session->get('authenticated')) { 00118 return Hub::redirect('/login'); 00119 } 00120 00121 $user = sess::getUser(); 00122 00123 if (!isset($_GET['s']) || $_GET['s'] != md5('zOmg4tehcoolz!' . $user->username) || !$user->has_twitter()) { 00124 return Hub::redirect('/settings/services'); 00125 } 00126 00127 $user->twitter()->delete(); 00128 00129 Hub::redirect('/settings/services'); 00130 } 00131 }