Siteme Facebook Girişi Nasıl Yapabilirim

Bu konuyu okuyanlar

anti_uho

Öğrenci
Katılım
17 Temmuz 2017
Mesajlar
40
Reaksiyon puanı
7
Puanları
8
Yaş
28
Facebook Api Araştır :) Seni cevabın orada :

Bu dersimizde facebook’un php kütüphanesini kullanarak giriş işleminin nasıl yapıldığını ve kullanıcıya ait özel bilgilerin nasıl alındığını öğreneceğiz, yararlı olması dileğiyle..

Önce bir uygulama lazım!

Facebook’a herhangi bir istekte bulunmak için öncelikle bir uygulamaya ihtiyacımız var. Çünkü bu uygulama’nın verdiği appId ve secret key’i ile facebook’dan ilk etapta izin almamız gerekiyor. Eğer uygulama oluşturmayı bilmiyorsanız videoya göz atabilirsiniz.

Uygulama oluşturma adresi;
https://developers.facebook.com/apps

Sıra geldi PHP SDK’ya

Kullanabilmemiz için facebook’un php kütüphanesini indirmemiz gerekiyor. Bunuda github üzerinden indiriyoruz. İçerisinde bir çok dosya mevcut, bize lazım olan “src” klasörü.

PHP SDK indirme adresi;
https://github.com/facebook/facebook-php-sdk

Hadi kod yazmaya başlayalım..

İlk olarak src klasörü içinde bulunan facebook.php‘yi sayfamıza dahil edelim.

require 'src/facebook.php';
Daha sonra facebook’dan uygulamamız için izin alalım. Bunun için facebook sınıfını başlatıyoruz. Ve dizi olarak uygulama’da verilen appId ve secret key’i gönderiyoruz.

$facebook = new Facebook(array(
'appId' => 'senin app id değerin',
'secret' => 'senin secret key değerin'
));
Sıra geldi kullanıcının giriş yapıp yapmadığını anlamaya.. Bunun için getUser() metodunu kullanacağız. Eğer kullanıcı giriş yapmışsa üye id’sini yapmamışsa 0 değerini bize döndürüyor. Bizde buna göre kontrollerimizi yapabiliriz.

$userid = $facebook->getUser();
Eğer kullanıcı giriş yapmışsa hemen bir try – catch yapısı oluşturalım. Ve kullanıcı değerlerini api() metodu ile alalım. Eğer sorun çıkarsa facebook exception ile bunu yakalayıp ekrana bastıralım.

if ( $userid ){
try {
$profile = $facebook->api('/me');
} catch ( FacebookApiException $e ){
print $e->getMessage();
$userid = null;
}
}
Burada uygulamaya izin veren kullanıcının bilgilerini “/me” değerini göndererek alıyoruz. Bir dizi halinde $profile değişkeninde değerler depolanıyor eğer giriş yapılmış ise.

Şimdi giriş yapmışsa çıkış url’sini giriş yapmamış ise giriş url’sini yine metodlar ile belirleyelim;

Kaynak: PHP ile Facebook Giriş Uygulaması – Tayfun Erbilen

if ( $userid ){
$logout = $facebook->getLogoutUrl(array(
'next' => 'http://www.erbilen.net/facebook/logout.php'
));
} else {
$login = $facebook->getLoginUrl(array(
'scope' => 'email'
));
}
Burada çıkış url’sinde next parametresini göndermek zorunda değilsiniz. Bu parametre şunu yapıyor, önce facebook’dan çıkış yapıyor kullanıcı eğer next parametresi varsa daha sonra oraya yönlendiriliyor. Yok ise geri geldiği sayfaya yönlendiriliyor. (Sanırım )

Giriş url’sinde ise scope parametresinde kullanıcıya ait ekstra bilgiler almak istersek bunları belirtiyoruz. Birden fazla için virgül ile ayırmanız gerekiyor. Eğer scope değeri belirtilmez ise kullanıcının herkese açık bilgileri (ki bu kişiden kişiye göre değişir) bilgileri alınır. Kesin olarak almanız gereken bir bilgi var ise bunu scope değerinde mutlaka belirtin.

Kullanabileceğiniz değerlere şu adresten ulaşabilirsiniz;
https://developers.facebook.com/docs/facebook-login/permissions/

Şimdi artık giriş yapmamışsa giriş yap linkini giriş yapmışsa profil bilgilerini ekrana yazdırabiliriz;

if ( $userid ){
print_r($profile);
} else {
print '<a href="'.$login.'">Giris Yap</a>';
}
Evet her şey başarılıysa sizi kutlarım
1f642.svg


Extra: Kullanıcının Arkadaş Listesini Almak

scope parametresine şöyle değiştirelim;

$login = $facebook->getLoginUrl(array(
'scope' => 'email, read_friendlists'
));
Artık uygulamada kullanıcıdan arkadaş listesinide almayı teklif ediyoruz. Eğer kabul ederse bu arkadaş listesine api() metodu ile erişeceğiz. try – catch içinde bunu yapmıştık. $profile değişkeninden hemen sonra şöyle bir işlem yapacağız;

$friendlists = $facebook->api('/me/friends');
Burada ben “/me/friends” değerini kafamdan uydurmuyorum elbette
1f642.svg
Şöyle düşünün.
Tayfun Erbilen => /me/friends

Evet daha sonra print_r() ile $friendlists değişkeninin depoladığı elemanlara bir göz atabilirsiniz
1f642.svg


Güncelleme: Facebook Çıkış İşlemi

Eğer herşeye rağmen çıkış yapılmıyor ise kullanıcının çıkış yapması için destroySession() metodunu kullanın.

$facebook->destroySession();
DEMO

Demo adresinde uygulamaya izin vererek demoyu görüntüleyebilirsiniz.
http://www.erbilen.net/facebook/index.php

İNDİR
http://yadi.sk/d/67kS0qkjC9FJF
 

Son mesajlar

Üst