Faceit.com api kullanımı

Faceit.com , başta csgo ve dota2 olmak üzere e-spor oyunlarında rekabetçi maç atmaya yarayan bir PUG platformudur. İsteyen herkes faceit.com‘a üye olup site içerisinden rekabetçi maç aratarak oyunlar oynayabilirler

Bizde faceit.com’un bize sunmuş olduğu api servisinden yararlanarak birkaç işlem yapacağız.

Neler Göreceğiz ?

  1. Faceit.com’un api servisine kayıt olup api key alacağız.
  2. Aldığımız keyleri faceit.com’a Post edeceğiz
  3. Keylerimizi kullanarak birkaş veri çekeceğiz

Kayıt olmak ve Api almak

ilk olarak faceit’in developer sayfasına gidiyoruz.karşımıza çıkan sayfanın sağ üst tarafındaki login butonuna tıklayarak giris/kayit yapıyoruz.

Daha önce kayıt yaptırmamış olanlar için steam hesabınızı faceit.com’a bağlamanızı isteyecektir.

Kayıt/giriş işlemi bittikten sonra karşınıza alttaki resim gibi bir alan karşınıza çıkacaktır. İlgili alanları kendinize göre doldurarak.İşlemi sonlandırın.

Kayıt/giriş işlemi bittikten sonra Adresine giderek ilk uygulamanızı oluşturunuz.

Karşınıza alttaki resimde olduğu gibi bir alan ile karşılaşacaksınız.İlgili alanları doldurarak ilk uygulamanızı oluşturum.

Uygulamamızı oluşturduk .Sırada uygulamamıza api key almak kaldı.

Karşınıza çıkan bölümde API KEYS sekmesine tıklayınız.Ardından + ( artı ) butonuna basın. karşınıza çıkan seçeneklerden Server Side‘ı seçip sağ alt köşedeki create butonuna tıklayarak api keyinizi oluşturunuz.

Api keyimizide aldığımıza göre yavaştan işlem yaptırmaya başlayalım.

Keyleri Post Etmek

Keylerimizi faceit.com’a post etmemizin sebebi api keyimizi faceit’e tanıtmandan işlem yapamıyor olmamızdan kaynaklanıyor. ilk işlem olarak aldığımız api keyi curl ile faceit.com’a gönderiyoruz .

Bi nevi , “biz key aldık iznin olursa birkaç veri çekeceğim” diyoruz.

Curl Etmek

$ch = curl_init(); // curl başlattık

curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'Authorization: Bearer APİ_KEYİNİZİ_BURAYA_YAPIŞTIRIN', // Bearer yazısı sabit kalacak , ellemeyiniz
'accept: application/json' // Burayı ellemeyiniz.
)
);

Curl işleminiz bitirdik. sırada curl ile veri çekmek var.

Curl ile veri çekmek

Evet api keyimizi post ettik sırada veri çekme işlemleri var.Veri çekme işlemlerinize yardımcı olacak dökümanlara, buraya tıklayarak gidebilirsiniz.

Kullanıcı player_id almak

İlk olarak kullanıcı player_id alarak işleme başlıyoruz.player_id ileriki işlemlerde işimize yarayacağı için ilk olarak bu işlemden başladık.

curl_setopt($ch, CURLOPT_URL, 'https://open.faceit.com/data/v4/players?nickname=FACEİT_KULLANICI_ADI'); // player_id almak istediğiniz hesabın kullanıcı adını giriniz
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // verileri alıyoruz

$array = curl_exec($ch); // değişkene atayıp decode edeceğiz
curl_close($ch); // curl işlemimizi bitirdik

$p_id = json_decode($array,true); // decode ettik

$id = $p_id["player_id"]; // kullanıcı id aldık

Player_id yi cektik. çektiğimiz id ile oyuncu bilgilerini alalım

Bunun için tekrar curl işlemlerini yapacağız.Belki kısa yolu vardır ama ben bilmiyorum.o yüzden tekrar curl işlemlerini yapacağım.

$bh = curl_init();

curl_setopt(
$bh,
CURLOPT_HTTPHEADER,
array(
'Authorization: Bearer e34b5bae-0410-4ca2-a4e3-5e8fae7304fb',
'accept: application/json'
)
);
curl_setopt($bh, CURLOPT_URL, 'https://open.faceit.com/data/v4/players/'.$id); // player_id ile kullanıcı bilgilerini çektik
curl_setopt($bh, CURLOPT_RETURNTRANSFER, 1);

$b = curl_exec($bh);
curl_close($bh);

$d = json_decode($b,true);
print_r($d); // çektiğimiz bilgileri ekrana bastırdık

Bu işlemin sonucunda , kullanıcının faceit levelinden aldığı elo ya kadar herşeyini görebiliyoruz.

Çıktının devamıda var.

Kullanıcının Maç geçmişi

Bu en yararlı araçlardan biri olduğunuz düşünüyorum.ilk başta aldığımız player_id yi burada yine kullanacağız.

$bh = curl_init();

curl_setopt(
$bh,
CURLOPT_HTTPHEADER,
array(
'Authorization: Bearer e34b5bae-0410-4ca2-a4e3-5e8fae7304fb',
'accept: application/json'
)
);
curl_setopt($bh, CURLOPT_URL, 'https://open.faceit.com/data/v4/players/'.$id.'/history?game=csgo&offset=0&limit=20'); // game : hangi oyunun maçlarını çekmek istiyorsunuz * offset default 0 * limit ise çekmek istediğiniz maç sayısını belirtiyor
curl_setopt($bh, CURLOPT_RETURNTRANSFER, 1);

$b = curl_exec($bh);
curl_close($bh);

$d = json_decode($b,true);
print_r($d);

Oyuncunun maç geçmişini yukarıdaki kod ile çok kolay bir şekilde çektik.Çektiğimiz verilerin içerisinde yok yok. Kaç maç üzerinden oynandığı ( best of ) ,Maçı kimin kazandığı, takım arkadaşları ve rakip oyuncular , maçın bitip bitmediğini ve nicesini rahatlıkla görebilirsiniz.

Son olarakta çektiğimiz maçlardan birisinin idsini alıp maçın analizini İstatistiklerini çekip bu yazımızı sonlandıralım

$mac_id = $d["items"][0]["match_id"]; // ile oynadığı son maçın idsini çektik

Son oynadığı maçın id sini çektik sırada maçın istatistiklerini ekrana yazdırmak kaldı.

$th = curl_init();

curl_setopt(
$th,
CURLOPT_HTTPHEADER,
array(
'Authorization: Bearer e34b5bae-0410-4ca2-a4e3-5e8fae7304fb',
'accept: application/json'
)
);
curl_setopt($th, CURLOPT_URL, 'https://open.faceit.com/data/v4/matches/'.$mac_id.'/stats');
curl_setopt($th, CURLOPT_RETURNTRANSFER, 1);

$t = curl_exec($th);
curl_close($th);

$stast = json_decode($t,true);
print_r($stast);

Maçın tüm detaylarını yukarıdaki kod ile alabilirsiniz.

Maçın kaç kaç bittiğini, hangi haritaların oynandığını hatta oyuncuların k/d oranlarına kadar erişebilirsiniz.

Kaynak kodlarının hepsini github profilimi yükleyeceğim . daha net anlayabilmek için indirip kurcalayabilirsiniz.

Bugünkü yazım bukadar bir sonraki yazımda görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir