Kejadian ini menimpa hampir seluruh website rekanan yang dihandle oleh penulis, termasuk website penulis ini, "Mengapa kok saya tidak bisa Login menggunakan Facebook?".. mungkin ada sebagian dari Anda yang berkata demikian.. selidik punya selidik ternyata versi facebook yang digunakan oleh penulis ini tidak lagi digunakan oleh facebook, alias "DEPRECIATED".. hal ini disebabkan facebook aktif meluncurkan versi-versi terbaru versi web service mereka sehingga mau tidak mau, kita harus melakukan upgrade terhadap Facebook SDK kita.
Nah, yang penulis akan bahas dan digunakan di website ini adalah Facebook SDK 5.5. dan Graph Version 2.9. setidaknya jika ingin menggunakan versi ini, harus menggunakan minimal PHP versi 5.4. keatas, karena ini tidak akan berjalan dibawah versi tersebut.
Langkah pertama:
Silahkan download Facebook SDK 5.5. disini.
Langkah kedua:
Silahkan lakukan extract pada file facebook sdk zip tersebut, akan menghasilkan folder Facebook.
Langkah ketiga:
Buat form.php yang skripnya seperti berikut : (Form ini digunakan untuk tatap muka pengguna)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<style>
#ajaxBusy{
margin: 0px auto; /* left margin is half width of the div, to centre it */
padding: 30px 10px 10px 10px;
position: absolute;
left: 30%;
top: 225px;
width: 500px;
height: 150px;
text-align: center;
border-radius: 5px;
background: #e8e8e8;
border: 1px solid #CCCCCC;
}
</style>
</head>
<body>
<div id="fb-root"></div>
<script>
var appid = 'APP_ID_FACEBOOK_ANDA';
window.fbAsyncInit = function() {
FB.init({
appId: appid,
cookie: true,
status: true,
xfbml: true,
oauth : true, // enables OAuth 2.0
version : 'v2.9',
frictionlessRequests : true
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function connect_fb(){
FB.login(function (response) {
if (response.authResponse) {
var access_token = FB.getAuthResponse()['accessToken'];
if(access_token==undefined) {
access_token=response.authResponse.accessToken;
}
$.ajax({
async:true,
url: "login_facebook.php",
dataType: "json",
type : "POST",
data: {
oauth_token:access_token
},
beforeSend: function (response) {
$('body').append('<div id="ajaxBusy"><p id="ajaxBusyMsg">Please wait...</p></div>');
//$("#ajaxBusy").show();
},
complete: function(){
$("#ajaxBusy").hide();
},
success: function () {
top.location.href = "#"
}
});
}
}, { scope: 'email, public_profile, user_friends' });
}
</script>
<p><a href="#" onclick="connect_fb();"><img src="http://www.agussaputra.com/images/facebook.jpg"></a></p>
</body>
</html>
Langkah keempat:
Buat file login_facebook.php yang skripnya seperti berikut: (File ini digunakan sebagai file pemroses php)
<?php
include "Facebook/autoload.php"; // panggil autoload dari Facebook SDK
$app_id = "APP_ID_FACEBOOK_ANDA";
$secret_id = "APP_SECRET_FACEBOOK_ANDA";
$fb = new FacebookFacebook([
'app_id' => $app_id,
'app_secret' => $secret_id,
'default_graph_version' => 'v2.9',
//'default_access_token' => '{access-token}', // optional
]);
try {
// Get the FacebookGraphNodesGraphUser object for the current user.
// If you provided a 'default_access_token', the '{access-token}' is optional.
$response = $fb->get('/me?fields=first_name,last_name,email,id,gender', $_POST['oauth_token']);
} catch(FacebookExceptionsFacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$me = $response->getGraphUser();
$fullName = $me['first_name']." ".$me['last_name'];
$email = $me['email'];
$id = $me['id'];
$ip = $_SERVER['REMOTE_ADDR'];
echo "Nama : ".$fullName.", Email : ".$email;
?>
Disini penulis menganggap Anda telah mengerti cara membuat facebook APP sebelumnya, jika belum memahami pembuatan facebook app, Anda dapat membeli buku/ebook API DEVELOPER BUKU SAKTI PARA PENGEMBANG WEB disini.
Nah, langsung saja saja, untuk mencoba hasilnya tentu Anda harus mencobanya secara online (tidak bisa menggunakan localhost), karena facebook akan memvalidasi domain, jika Anda menggunakan localhost, tentu saja akan ditolak oleh facebook dan fungsi ini tidak akan berjalan.
Jalankan form.php ini melalui web browser Anda kemudian klik gambar facebook. jika Anda belum pernah masuk ke akun facebook sebelumnya, maka akan diminta form login.
Namun jika sudah, maka akan langsung ditampilkan informasi terkini akun facebook Anda.
Sisanya silahkan lanjutkan untuk disesuaikan dengan website Anda.
Adapun full source codenya bisa Anda download di sini.
Semoga tutorial ini dapat memberikan pemahaman dan wawasan bagi Anda yang masih bingung bagaimana caranya melakukan atau membuat facebook login menggunakan versi facebook terbaru.
عادل جويلي
أريد معرفة أكسس توكن
عادل جويلي
مشكورين