Sosyal medyanın verdiği en büyük imkanlardan birisi de globalleşme. Basit bir Facebook uygulaması ile Facebook kullanıcılarının , web sayfanıza kolayca üye olması ve giriş yapması mümkün. OAuth hakkında detaylı bilgi için Via.
Bu yazıda pratik ve hızlı bir facebook uygulaması geliştirecek, demo sayfamızda erişim sağlayacağız.
Öncelikle Facebook Developers sayfasına giriş yapmış olmak gerekiyor.
Adım adım işlemlere geçelim;
1. Adım
Yeni uygulama bağlantısına tıklayarak kayıt edelim.
2. Adım
Kayıttan sonra özetten sonra gelen ekranda App ID ve App Secret değerleri kodlarımız için kullanılacak.

3. Adım
Yazının altında indirebileceğiniz pakette yer alan facebook.php dosyasındaki appIdve secret değerlerini güncelleyin.
4. Adım – login.php
<?php
ob_start();
session_start();
error_reporting(0);
# We require the library
require("facebook.php");
# Creating the facebook object
$facebook = new Facebook(array(
'appId' => '282510525144658',
'secret' => '614e8f0ada3dff459de346c2863a0341',
'cookie' => false
));
# Let's see if we have an active session
$session = $facebook->getSession();
if(!empty($session)) {
# Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
try{
$uid = $facebook->getUser();
$user = $facebook->api('/me');
}catch (Exception $e){}
if(!empty($user)){
# We have an active session, let's check if we have already registered the user
$eposta=$user['email'];
$name=$user['name'];
$username=$user['name'];
$utip=1;
if($user['gender']=='male'){$sex=1;}
else{$sex=0;}
$vakit=time();
$thumb=$slug."_".$vakit.".jpg";
$simdi=date("Y-m-d H:i:s");
$_SESSION['uid']=$user['id'];
$_SESSION['username'] = $user['isim'];
$_SESSION['profile_image']='http://graph.facebook.com/'.$user['id'].'/picture?type=large';
$_SESSION['profile_link']=$user['link'];
/** Login veya register için
* bu bölümde database kodları ile uygulanabilir
**/
print_r($user);
header("Location: ../index.php");
} else {
# For testing purposes, if there was an error, let's kill the script
die("There was an error.");
}
} else {
# There's no active session, let's generate one
$login_url = $facebook->getLoginUrl();
header("Location: ".$login_url);
}
login.php, facebook bağlantı onayı sağlandıktan sonra gelen facebook graph bilgilerini basitçe $_SESSION değerlerine aktarıyoruz ve anasayfaya ( index.php) yönlendiriyoruz.
4. Adım – Uygulama için anasayfa index.php
<?php
@ob_start();
@session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="tr-TR">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width" />
<title>Serpito - Facebook ile bağlan</title>
</head>
<body>
<div id="wrapperpub">
<div id="header">
<div style="width:550px; float:left;">
<h1 id="blog-title"><a href="http://www.serpito.com/" title="Serpito">Serpito</a></h1>
<div>Güncel Teknoloji ve Yazılım Blogu </div>
</div><!-- dp100 -->
<div style="width:300px; float:right;">
<a style="font:2.4em/1.5 museo-sans-500,helvetica,arial,sans-serif; color:#FFF;" href="http://www.serpito.com/sign-in-with-facebook/">Yazıya geri dön &amp;not;</a>
</div>
</div><!-- #header -->
</div><!-- #wrapperpub -->
<div></div>
<p><h2 style="color:#FFF; font:2.6em/1.5 museo-sans-500,helvetica,arial,sans-serif;" align="center">Facebook Login Demo Uygulaması</h2></p>
<div id="wrapper" style="width:980px; min-height:250px; margin-top:10px; font-family:museo-sans-500,helvetica,arial,sans-serif;">
<div id="container" style="width:940px;">
<?php
if(!isset($_SESSION['uid'])){
?>
<p align="center">Facebook ile Bağlan ? <br /><a href="fb/login.php"><img src="fblogin.gif" /></a></p>
<?php
}else{
?>
<span style="float:right;"><a href="logout.php">Çıkış</a></span>
<div style="background-color:#FFEAA8; padding:5px; font-size:14px; background-image:url(facebook.png); background-position:bottom right; background-repeat:no-repeat;">
<div>
<a href="<?=$_SESSION['profile_link']?>"><img alt="" src="<?=$_SESSION['profile_image']?>" height="100" width="100"></a>
</div>
<div>
<h2><a href="<?=$_SESSION['profile_link']?>"><?=$_SESSION['username']?></a></h2>
<div style="clear:both;"></div>
</div>
</div>
<br />
<br />
<strong> Facebook Graph Verileri</strong>
<pre style="font-size:12px;">
<?=print_r($_SESSION);?>
</pre>
<?php
}
?>
</div>
<div style="clear:both;"></div>
</div>
</body>
</html>




One comment
Selamlar. Güzel bir paylaşım. Bir sorunum var. Bazen die(“There was an error.”); hatası alıyorum ve bu ölümcül hatayı ayıklayabilecek ve çözebilecek hiçbir fikre sahip değilim.
yardımcı olabilir misiniz? bu hata döndüğünde die yerine ne yapmak gerekir?
error reportingten dönen mesajlarım şu 2 şekilde olabiliyor:
[05-Feb-2012 00:18:08] CSRF state token does not match one provided.
[06-Feb-2012 19:25:33] OAuthException: An active access token must be used to query
Bu hatayı yaşayan herkes için bu sitedeki bu konubir başvuru kaynağı olacaktır.