Twitter ile Giriş Yap PHP – Twitter Uygulama Oluşturma – 2020

Twitter ile Giriş Yap PHP – Twitter Uygulama Oluşturma – 2020

Bu makalede twitter ile giriş yap PHP uygulaması nasıl yapılır, twitter api ile twitter oauth sınıfı üzerinden kullanıcı bilgileri nasıl çekilir ve Developer Twitter sayfası üzerinden uygulama nasıl oluşturulur konularını resimli, ayrıntılı bir şekilde anlatacağım. Söylemek istediğiniz bir durum olur ise yorum olarak yazmayı unutmayın.

Konu ile alakalı olarak 2 ayrı facebook ile giriş yap PHP örneği ile google ile giriş yap PHP ve Javascript uygulamasını sitem üzerinden bulabilirsiniz.

Twitter api ile kullanıcı eğer
onaylar ise son tweetleri çekme ve kullanıcı adına tweet atma
tarzı twitter üzerinde çalışabilecek çeşitli uygulamalar
yapılabilir ve kullanıcının birçok bilgileri çekilebilir. Biz
ise twitter ile bağlan işlemi sonucunda kullanıcının twitter id,
eposta, profil resmi ve isim bilgisini çekeceğiz.

Ancak ilk olarak onaylanmış bir twitter geliştirici hesabına ihtiyacımız var. Hesabınız yok ise Twitter Geliştirici (Developer) Hesabı Açma adlı yazıma göz atabilirsiniz.

Developer Twitter sayfası üzerinden bir uygulama oluşturmamız gerekiyor. Twitter ile giriş yap PHP örneğimiz bu uygulamada yapacağımız bazı ayarlar doğrultusunda çalışacak ve uygulama içerisindeki Api Key ve Api Secret bilgileri ile twitter oauth sınıfını kurmamız gerekecek. Peki twitter api oluşturma ve dolayısıyla twitter api key alma (consumer key) işlemi nasıl yapılır? Görelim.

İlk olarak Twitter Developer sitesine giriş yapıp menülerden Apps butonuna tıklıyoruz ve uygulamalarımızın listeleneceği uygulamalar sayfasına giriş yapıyoruz. Açılan sayfada sağ üstte bulunan “Create an app” butonuna tıklıyoruz ve uygulama oluşturma sayfasına gidiyoruz.

Bu sayfada oluşturacağımız
uygulama ile ilgili detayları girmemiz gerek. Burada önemli olan
kısımlar aşağıdaki gibidir.

  1. Enable Sign in with Twitter seçeneğini aktif hale getirmeliyiz. Böylelikle twitter ile giriş yap özelliği aktif olacak.
  2. Website URL kısmına bir site ismi belirleyin. Aktif olmasına veya sizin olmasına bile gerek yok domain_name.com tarzında bir şeyler sallayın. Localhostta test edeceğimiz örneği engellemiyor.
  3. Callback Urls kısmına twitter login uygulamamızın hangi sayfada çalışacağını belirtiyoruz. Birden fazla url belirleyebiliriz, açılış penceresini, bilgileri bu doğrultuda bize sunacaktır. Localhostta çalıştıracaksanız login uygulaması hangi dizinde çalışıyorsa url adresi şeklinde girin.
  4. Terms of Service URL ile Privacy policy URL adresini boş bırakabiliriz. Zorunlu değil ancak kullanıcı giriş yaptıktan sonra onun isim soyisim, mail, profil resmi gibi bilgilerini çekerken mail adresini çekememiş oluruz. Bu yüzden buraya da Website URL de olduğu gibi değer giriyoruz.
  5. Kendi hostunuza veya sunucunuzda kullanacağınızda bu alanları kendinize göre tekrar düzenleyin.

Gerekli alanları doldurduktan sonra “Create” butonuna basıyoruz.

Developer terms isminde bir pencere çıkacaktır, tekrar “Create” butonuna tıklıyoruz ve uygulamamızı oluşturuyoruz. Uygulamamızın bilgilerinin bulunduğu sayfaya yönlendirileceğiz. Bu sayfada aşağıdaki bölümler mevcut.

App Details: Uygulama bilgileri. Düzenleyebilir veya silebiliriz.

Keys and tokens: Uygulamanın api key ve secret token bilgileri. Bu bilgileri PHP tarafında twitter login api kodlarının arasında gerekli yerlere yazacağız.

Permissions: Php ile twitter authentication örneğimizde kullanıcının email adresini alabilmemiz için ayrıca Permissionssayfası içerisinde Additional Permissions bölümünün aktif olması gerekiyor. Aktif edebilmemiz için App Details sayfasında Privacy Policy URL ve Terms of Service URL bölümlerinin boş olmaması gerekiyor. Bütün bu işlemleri yapmamızın neticesinde, php de twitter verilerini çekme işlemi sırasında sorunsuz bir şekilde kullanıcının mail adresini elde edebileceğiz.

Twitter
giriş işlemi için kullanıcı bilgilerini çekmek için ya da
twitter kaynaklarını okuma, tweetleri yükleme, profil bilgilerini
okuma tarzı işlemler için de Read only seçeneği
işaretlenebilir.

Ayrıca twitter api ile tweet atma, kullanıcıları takip etme veya kullanıcı bilgilerini güncelleme işlemi tarzında yazma işlemleri yapılacak ise Read and Write seçeneğini seçmemiz gerekiyor.

Okuma, yazma gibi yukarıdaki bütün işlemleri gerektiren, ayrıca kullanıcının mesajlarını okuyup, mesaj gönderme işlemlerini de yapabilmek istiyor isek Read, Write and Access direct messages seçeneğini seçmeliyiz.

Aslında burada twitter api ile neler yapılabilir sorusunun da cevabı bir bakıma verilmiş oluyor.

Twitter api key alma ve uygulama oluşturma ayarları bu kadar basit. Artık kod tarafına geçiyoruz. Php twitter login nasıl yapılır ? Görelim.

PHP ile Twitter Api
Kullanımı & Twitter Login Uygulaması

TwitterOAuth kütüphanesi ile PHP’de twitter bilgilerini çekmek için gerekli olan bütün dökümanları ve kodları vereceğim. Makalenin en altında twitter login api örneğini indirip bilgisayarınızda deneyebilirsiniz.

Aşama aşama çalışma
mantığı:

  1. PHP twitter giriş işlemi yapılıp oturum açılmadı ise Twitter ile bağlan butonu karşımıza çıkacak.
  2. Bağlan butonuna tıklanıldığında kullanıcının giriş yapmasını ve böylece doğrulanmasını sağlamak amacıyla javascript sayfa içinde sayfa açma yoluyla twitter login sayfası popup pencerede hazırlanıyor ve kullanıcı bu sayfaya yönlendiriliyor.
  3. Kullanıcı giriş yapma işlemini onaylar ise siteye tekrar yönlendirilip, TwitterOAuth kütüphanesi ile kullanıcı doğrulanacak.
  4. Doğrulanmış kullanıcının twitter verilerini çekme işlemi gerçekleşip, bu veriler session değişkenine aktarılacak. Böylece kullanıcı için oturum açılmış olacak ve kullanıcının twitter id, isim, email ve profil resmi görüntülenmiş olacak.

Twitter login api içerisinde
twitter veri çekme ve kullanıcı doğrulama işlemi jetonlar
vasıtasıyla yapılmaktadır. TwitterOAuth kütüphanesi ile istek
jetonu, anahtarı oluşturuluyor ve bu istek anahtarı doğrultusunda
kullanıcı için giriş ve onaylama işlemi gerçekleştiriliyor.
Kullanıcı giriş yapar ise sitemize yönlendiriliyor ve giriş
işlemini, kullanıcıyı doğrulamak için istek jetonları,
anahtarları kullanılarak kullanıcı doğrulama kontrolü
yapılıyor. Eğer herşey yolunda gider ise doğrulama işlemi
başarılı bir şekilde gerçekleşiyor, bu jetonlar siliniyor ve
yerine nihai erişim jetonu (access token) yani doğrulama jetonu
oluşturuluyor. Böylece twitter access token alma işlemi
gerçekleşiyor ve kullanıcı doğrulanmış oluyor. Artık
kullanıcının twitter bilgilerini çekebiliriz ve bu bilgiler
doğrultusunda sitede oturum açabiliriz.

Twitter api kullanımı ile alakalı bütün kodları aşağıda görebilirsiniz. Hangi kod ne işe yarar, satır satır açıklamalarını ayrıntılı bir şekilde açıkladım.



login_twitter(); //twitter giriş sayfasının bağlantısının oluşturulduğu login_twitter() fonksiyonu devreye girecek
					}  
				}
				function login_twitter(){
					$connection = new TwitterOAuth($this->consumer_key, $this->consumer_secret);// consumer key ve consumer secret uygulama bilgileri ile TwitterOAuth sınıfı kuruluyor
					$request_token = $connection->getRequestToken(URL.$this->oauth_callback);// twitter giriş isteği, onay giriş sayfası oluşturulabilmesi için gerekli olan geçici (request) istek jetonu, anahtarı getRequestToken fonksiyonu ile oluşturuluyor
					$_SESSION['oauth_token'] = $token = $request_token['oauth_token']; //jetonlar session değişkenine aktarılıyor. 
					$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; //ayrıca bu jetonlar, giriş sayfasında kullanıcı giriş yapmayı onaylar ise sitemize geri yönlendirildiği sırada girişi doğrulama işlemi yapacaktır
					switch ($connection->http_code) { 
						case 200: //işlemler başarılı ve herhangi bir sorun yok ise
							$url = $connection->getAuthorizeURL($token); //oluşturulan istek jetonu doğrultusunda getAuthorizeURL() fonksiyonu ile twitter giriş sayfası bağlantı yolu oluşturuluyor
							// oluşturulan örnek url: https://api.twitter.com/oauth/authenticate?oauth_token=ZZIt5wAAAAAA39gHAAABYN-Pqrw
							header('Location:'.$url);
							/*
								twitter login sayfasında kullanıcı giriş yapmayı onaylar ise yukarıdaki $oauth_callback değişkenindeki url bağlantısına istek jetonu da parametre olarak eklenecek ve bu url bağlantısına kullanıcı yönlendirilecek.
								kullanıcının yönlendirileceği örnek url: http://localhost:81/TT_Giris/index.php?sayfa=sosyal-giris&sosyal-tur=twitter&get_call=get_call&oauth_token=ZZIt5wAAAAAA39gHAAABYN-Pqrw&oauth_verifier=8Rc47tVJbHxICBrkVGr3lwypiKygE5Xl
								bağlantı içerisinde get_call parametresi var. bu parametre sayesinde kullanıcı geri yönlendirildiğinde twitter_callback() fonksiyonu çalıştırılacak.
								ayrıca bağlantı içerisinde parametreler halinde [oauth_token] istek jetonu ile [oauth_verifier] giriş doğrulama kodu bulunuyor. twitter_callback() fonksiyonu içerisinde bu parametreler kullanılarak kullanıcının giriş yapma isteği onaylanmış, doğrulanmış olacak.
							*/
						break;
						default: 
							echo 'Twitter bağlantı hatası. Daha sonra tekrar deneyin.';
					}
				}	
				function twitter_callback(){//kullanıcı twitter giriş sayfasında giriş yapmayı onaylar ise geri yönlendirilecek ve bu fonksiyon devreye girecek. Böylece kullanıcının giriş işlemi doğrulanacak
					$connection = new TwitterOAuth($this->consumer_key, $this->consumer_secret, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);//twitter giriş sayfası hazırlanmadan önce oluşturulan ve session değişkenlerine aktarılan istek jetonları ile TwitterOAuth sınıfını tekrar kuruyoruz
					$access_token = $connection->getAccessToken($_GET['oauth_verifier']);//giriş işlemi, onaylama işlemi yapıldıktan sonra gönderilen giriş doğrulayıcı kodu vasıtasıyla, getAccessToken() fonksiyonu bize doğrulama anahtarı yani erişim jetonu veriyor. böylece bu nihai jeton ile kullanıcının onaylanması, doğrulanması tamamlanmış oluyor
					$_SESSION['access_token'] = $access_token; //bu erişim, doğrulama anahtarını session değişkenine aktarıyoruz. bu anahtar ile kullanıcının bilgilerini view() fonksiyonu ile çekebileceğiz.
					unset($_SESSION['oauth_token']);//kullanıcı giriş, doğrulama işlemi bittiği için bu istek jetonlarını siliyoruz, bellekten kaldırıyoruz.
					unset($_SESSION['oauth_token_secret']);
					if (200 == $connection->http_code) { //bütün bu işlemler başarılı bir şekilde gerçekleşti ise
						$_SESSION['status'] = 'verified'; //kullanıcı doğrulanmıştır
						header('Location:'.URL.'/index.php?sayfa=sosyal-giris&sosyal-tur=twitter'); //sayfayı yeniliyoruz
						/*
							sayfa yenilendiğinde, status isimli session değişkeni aktif edildiğinden dolayı StripeAPI sınıfı kurulur iken view() fonksiyonu çalıştırılacağı için kullanıcı bilgileri çekilmiş olacak.
							böylece oturum açma işlemi gerçekleştirilecek.
						*/
					}
				}	
				function view(){
					$access_token = $_SESSION['access_token']; //kullanıcının doğrulaması sonucunda elde edilen nihai erişim anahtarı, session değişkeninden normal değişkene aktarılıyor
					$connection = new TwitterOAuth($this->consumer_key, $this->consumer_secret, $access_token['oauth_token'], $access_token['oauth_token_secret']); //bu anahtar bilgileri ile TwitterOAuth sınıfı kuruluyor
					$params = array('include_email' => 'true'); //kullanıcıdan çekilecek ek bilgilerin listesi
					$content = $connection->get('account/verify_credentials',$params); //böylece doğrulanmış ve giriş işlemini onaylayan kullanıcının bilgileri çekiliyor
					return $content; //bilgiler geri döndürülüyor
				}
			}
			global $twitter_obj;
			if($_SESSION['status']){ //kullanıcı twitter giriş sayfası üzerinden onay verdi ise, kullanıcı doğrulandı ise
				$twitter_obj = New StripeAPI(); //StripeAPI sınıfı kurulur
				$profile = $twitter_obj->view(); //ve içerisindeki view() fonksiyonu ile kullanıcının twitter bilgileri elde edilir
				$s_uye_id = $profile->id;
				$s_uye_isim = $profile->name;
				$s_uye_resim = $profile->profile_image_url;
				$s_uye_email = $profile->email;
				$s_durum = 1;
			}else{ //giriş sayfası üzerinden onay vermedi ise
				$twitter_obj = New StripeAPI(); //StripeAPI sınıfı kurulur, kurucu __construct() fonksiyonu içerisindeki bölüm çalıştırılır ve kullanıcının doğrulanması işlemleri başlatılır
			}
			if ($_GET['get_call']){
				$twitter_obj->twitter_callback();
			}
		}
		if ($s_uye_id){ //kullanıcı giriş yapıp uye id değeri var ise kullanıcı bilgileri ile oturum açılıyor. Bu kısımda veritabanı işlemleri yapılabilir
			$_SESSION['s_uye_id'] = $s_uye_id;
			$_SESSION['uye_isim'] = $s_uye_isim;
			$_SESSION['uye_eposta'] = $s_uye_email;
			$_SESSION['uye_resim'] = $s_uye_resim;
			$_SESSION['giris_durum'] = 1;
			echo 'Başarıyla giriş yaptınız.'; ?>
			
		
		

Anasayfa

'.$_SESSION['uye_isim'].'

Eposta: '.$_SESSION['uye_eposta'].'



Çıkış Yap '; }else{ ?> Twitter ile bağlan

PHP ile Twitter bilgilerini çekmek için gerekli olan twitter’da uygulama oluşturmak ve php twitter login api yapımı konularını ayrıntılı bir şekilde uygulamalı olarak izah etmeye çalıştım. Makale içerisinde anlattığım TwitterOAuth kütüphanesi dosyalarının da bulunduğu uygulamaya TwitterLoginExample dosyasını indirerek ulaşabilirsiniz.

Yorum Yap
0 Yorum yapan