Skip to content

Instantly share code, notes, and snippets.

@devyfriend
Created May 7, 2013 08:10
Show Gist options
  • Select an option

  • Save devyfriend/5531016 to your computer and use it in GitHub Desktop.

Select an option

Save devyfriend/5531016 to your computer and use it in GitHub Desktop.
twitter fb login
function _savetw()
{
$conf = config_item('twapps');
$params = array('consumer_key' => $conf['key'], 'consumer_secret' => $conf['secret']);
$this->load->library('twitter', $params );
/* Get temporary credentials. */
$this->session->set_userdata('twitter', $request_token = $this->twitter->getRequestToken()); // getRequestToken(base_url('startrek/auth/twitter_callback'))
switch ($this->twitter->http_code)
{
case 200:
/* Build authorize URL and redirect user to Twitter. */
$url = $this->twitter->getAuthorizeURL($request_token['oauth_token']);
redirect($url);
break;
default:
/* Show notification if something went wrong. */
echo 'Could not connect to Twitter. Refresh the page or try again later.';
}
}
function _saveme($me)
{
$form = array(
'name' => $me['name'],
'infrom' => $me['loginwith'],
'infrom_id' => $me['id'],
'link' => $me['link'],
'email' => $me['email'],
'raw_data' => @addslashes(serialize($me)),
'save_date' => phpdbnow()
);
$sql = "
INSERT INTO flash_users (`username`,`infrom`,`infrom_id`,`link`,`email`,`raw_data`,`save_date`,`create_date`) VALUES (
'".$form['name']."','".$form['infrom']."','".$form['infrom_id']."','".$form['link']."','".$form['email']."','".$form['raw_data']."','".$form['save_date']."','".$form['save_date']."')
ON DUPLICATE KEY UPDATE `username` = '".$form['name']."', `raw_data` = '".$form['raw_data']."', `save_date` = '".$form['save_date']."';
";
$this->db->query($sql);
$iam = $this->db->where('infrom_id', $me['id'])->limit(1)->get('flash_users')->row_array();
$this->session->set_userdata('me', $iam);
if(isset($iam['id']))
{
if($iam['phone'] != '' && $iam['email'] != '' && $iam['username'])
{
redirect('startrek');
}else{
redirect('startrek/regis','refresh');
}
}
redirect('startrek/auth','refresh');
exit;
}
function twitter_callback()
{
$tw = @$this->session->userdata('twitter');
if(! $tw){
/* If the oauth_token is old redirect to the connect page. */
if (isset($_GET['oauth_token']) && @$_SESSION['twitter']['oauth_token'] !== $_GET['oauth_token'])
{
$this->session->unset_userdata('twitter');
header('Location: '.base_url('startrek/auth'));
}
}
$conf = config_item('twapps');
$params = array('consumer_key' => $conf['key'], 'consumer_secret' => $conf['secret']);
if( isset($tw['oauth_token']) && isset($tw['oauth_token_secret']) )
{
$params['oauth_token'] = $tw['oauth_token'];
$params['oauth_token_secret'] = $tw['oauth_token_secret'];
}
$this->load->library('twitter', $params );
/* Request access tokens from twitter : FCKIN IMBA!*//* Save the access tokens. Normally these would be saved in a database for future use. */
$this->session->set_userdata('twitter', $this->twitter->getAccessToken($_GET['oauth_verifier']));
/* If HTTP response is 200 continue otherwise send to connect page to retry */
if (200 == $this->twitter->http_code)
{
/* The user has been verified and the access tokens can be saved for future use */
$me = (array) $this->twitter->get('account/verify_credentials');
$me['loginwith'] = 'tw';
$this->session->set_userdata('loggedin', $me);
$me['name'] = $me['screen_name'];
$me['email'] = '';
$me['link'] = 'http://twitter.com/'.$me['screen_name'];
$this->_saveme($me);
} else {
/* Save HTTP status for error dialog on connnect page.*/
//header('Location: '.base_url('startrek'));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment