Login Dengan Library PHP Twitter OAuth

 Author : hadinug, 02 April, 2014, Komentar

Twitter merupakan sosial media yang banyak digunakan oleh masyarakat dunia mulai dari kalangan pekerja, atlit, tokoh nasional, sampai selebritis dunia menggunakan twitter untuk bersosial atau berkomunikasi dengan para followernya. Tidak hanya itu twitter akun biasanya dimanfaat kan oleh developer website untuk menjaring user atau pengguna di website lain.


Oke cukup basa-basi nya, langsung saja ke topik utama dari tutorial ini adalah membuat login twitter OAuth dengan PHP library. Tutorial kali ini sangat sederhana, kita tidak menggunakan database untuk menyimpan data user yang login, jadi ketika demo nanti, jangan khawatir! kita tidak akan menyimpan data anda. Dengan menggunakan libraray PHP, kita akan fokus pada 3 file saja.



  1. Configuration
  2. Login
  3. Process

Nah kita mulai dari yang pertama

Configuration

Jika anda belum memiliki akun twitter, silahkan registrasi dulu di http://twitter.com dan buat akun disana. Jika anda sudah punya, silahkan langsung ke alamat developer twiter untuk membuat aplikasi di twitter. Hal ini berguna untuk mendapatkan API KEY dan API Secret.

<?php
define('CONSUMER_KEY', 'XXX');
define('CONSUMER_SECRET', 'XXX');
define('OAUTH_CALLBACK', 'http://yoursite.com/process.php');
?>


Login

Nah dihalaman ini terdapat pada file (index.php), anda akan di sugukan sebuah link untuk mengauthentifikasi pengguna twitter. 

<?php
//start session
session_start();

//just simple session reset on logout click
if($_GET["reset"]==1)
{
	session_destroy();
	header('Location: index.php');
}

// Include config file and twitter PHP Library by Abraham Williams (abraham@abrah.am)
include_once("config.php");
include_once("inc/twitteroauth.php");

if(isset($_SESSION['status']) && $_SESSION['status']=='verified') 
{	//Success, redirected back from process.php with varified status.
	//retrive variables
	$screenname 		= $_SESSION['request_vars']['screen_name'];
	$twitterid 			= $_SESSION['request_vars']['user_id'];
	$oauth_token 		= $_SESSION['request_vars']['oauth_token'];
	$oauth_token_secret = $_SESSION['request_vars']['oauth_token_secret'];

	//Show welcome message
	echo '<div class="welcome_txt">Welcome <strong>'.$screenname.'</strong> (Twitter ID : '.$twitterid.'). <a href="index.php?reset=1">Logout</a>!</div>';
	 
		
}else{
	//login button
	echo '<a href="process.php"><img src="images/sign-in-with-twitter-l.png" width="151" height="24" border="0" /></a>';
}


Process

Setelah mengklik link authorize di halaman sebelumnya, kemudian prosess selanjutnya ada pada file process.php, dimana akan dilakukan pengecekan pada user apakah benar atau tidak, jika benar akan di redirect kehalaman index.php dan data ID twitter anda akan di tampilkan

<?php
session_start();
include_once("config.php");
include_once("inc/twitteroauth.php");

if (isset($_REQUEST['oauth_token']) && $_SESSION['token']  !== $_REQUEST['oauth_token']) {

	// if token is old, distroy any session and redirect user to index.php
	session_destroy();
	header('Location: index.php');
	
}elseif(isset($_REQUEST['oauth_token']) && $_SESSION['token'] == $_REQUEST['oauth_token']) {

	// everything looks good, request access token
	//successful response returns oauth_token, oauth_token_secret, user_id, and screen_name
	$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['token'] , $_SESSION['token_secret']);
	$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
	if($connection->http_code=='200')
	{
		//redirect user to twitter
		$_SESSION['status'] = 'verified';
		$_SESSION['request_vars'] = $access_token;
		
		// unset no longer needed request tokens
		unset($_SESSION['token']);
		unset($_SESSION['token_secret']);
		header('Location: index.php');
	}else{
		die("error, try again later!");
	}
		
}else{

	if(isset($_GET["denied"]))
	{
		header('Location: index.php');
		die();
	}

	//fresh authentication
	$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
	$request_token = $connection->getRequestToken(OAUTH_CALLBACK);
	
	//received token info from twitter
	$_SESSION['token'] 			= $request_token['oauth_token'];
	$_SESSION['token_secret'] 	= $request_token['oauth_token_secret'];
	
	// any value other than 200 is failure, so continue only if http code is 200
	if($connection->http_code=='200')
	{
		//redirect user to twitter
		$twitter_url = $connection->getAuthorizeURL($request_token['oauth_token']);
		header('Location: ' . $twitter_url); 
	}else{
		die("error connecting to twitter! try again later!");
	}
}
?>


Semoga artikel ini bermanfaat, silahkan di download atau lihat demonya.

 
Bagikan halaman ke sosial media
 
Tags :   twitter    login    oauth       

Tentang Penulis

writer hadinug
Web Developer di PT. Yafii Solusi Internasional

Link: http://ysi.co.id

   Komentar Anda