Clash Royale api kullanımı

Bir çoğumuz supercell‘in çıkarmış olduğu oyunlardan en az birini oynamışızdır.Ben bu oyunlardan çoğunu oynadım.oynadığım bu oyunlardan birisi olan clash royale biraz araştırdım.

Hiç merak ettinizmi ,bu kullanıcı verilerine ulaşabileceğinizi ?Ben merak etmiştim ve bu gece araştırmaya karar verdim ki karşıma bize sundukları api hizmeti çıktı. Bukadar kolay olacağını tahmin etmemiştim.

Adamlar bizlere A dan Z ye herşeyi sunmuşlar.örnek vermek gerekirse, Bir oyuncunun yapmış olduğu son maçı detaylı bir şekilde görebiliyoruz, mevcut kart destesini görebiliyoruz ve birçok şey var .

Neler Göreceğiz ?

  • İlk olarak clash royale sayfasından api key alacağız.
  • ardında api key ile post işlemi yaparak verilerimizi alacağız.

Api key alma

İlk olarak buraya tıklayarak clash royale geliştirici sayfasına kayıt olunuz.

gerekli kayıt işlemlerini yaptıysanız Buraya tıklayarak yeni birtane apikey oluşturunuz.

IP adresi alanına projenizin bulunduğu sitenin IP adresini girmelisiniz.

Oluşturduğunuz uygulamaya tıklayarak api keyinizi alınız.

Uyulamamızı oluşturup api keyimizi aldığımıza göre veri çekme işlemlerine geçebiliriz.

Veri Çekme işlemleri

Daha öncesinde twitchden veri çekerken kullandığımız curl yapısını kullanacağız.

Örnek curl istek yapısı

$ApiKey = 'APİ_KEYİNİZ';
$th = curl_init();

curl_setopt(
    $th,
    CURLOPT_HTTPHEADER,
    array(
        'Accept: application/json', // ELLEME
        'authorization: Bearer '. $ApiKey;
    )
);

curl_setopt($th, CURLOPT_URL, 'GET_EDİLECEK_ADRESS');

curl_setopt($th, CURLOPT_RETURNTRANSFER, 1);

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

İsterseniz ilk olarak bir kullanıcının profil bilgilerini alalım.Bunun için https://api.clashroyale.com/v1/players/<TAG> adresine istekte bulunmamız gerekiyor.

<tag> ile belirttiğim alan; her kullanıcının belli bir tagı vardır örnek: #2LQ2YP98 şeklinde bu o kullanıcının idsi de denilebilir.Her kullanıcıya özel bir tag mevcuttur. ve bu taga oyun içerisinde isminizin hemen altında bulabilirsiniz.

Biz #2LQ2YP98 Kullanıcısının bilgilerini alalım.

$x = '%23';
$th = curl_init();

curl_setopt(
    $th,
    CURLOPT_HTTPHEADER,
    array(
        'Accept: application/json',
        'authorization: Bearer '. $ApiKey;
    )
);

curl_setopt($th, CURLOPT_URL, 'https://api.clashroyale.com/v1/players/'.$x.'2LQ2YP98');

curl_setopt($th, CURLOPT_RETURNTRANSFER, 1);

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

$stast = json_decode($t,true);

print_r($stast);

$x ile belirttiğim değişken # i belirtiyor.

Çıktı

Ve birçok bilgi daha mevcut sadece ilk alandakileri size gösterdim.

Kullanıcının Yaptığı son savaşları çekelim.

Bunun için https://api.clashroyale.com/v1/players/<tag>/battlelog ile sorguya girmem gerekiyor.

$x = '%23'; // # sembolu
$tag = '2LQ2YP98'; // kullanıcı tagı
$th = curl_init();

curl_setopt(
    $th,
    CURLOPT_HTTPHEADER,
    array(
        'Accept: application/json',
        'authorization: Bearer '. $ApiKey;
    )
);

curl_setopt($th, CURLOPT_URL, 'https://api.clashroyale.com/v1/players/'.$x.$tag.'/battlelog');

curl_setopt($th, CURLOPT_RETURNTRANSFER, 1);

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

$stast = json_decode($t,true);

print_r($stast);

Çıktı

Son olarak bir kullanıcıya bir sonraki galibiyette düşecek sandığı çekelim.

Bunun için https://api.clashroyale.com/v1/players/<tag>/upcomingchests sorguya sokacağız

$x = '%23'; // # sembolu
$tag = '2LQ2YP98'; // kullanıcı tagı
$th = curl_init();

curl_setopt(
    $th,
    CURLOPT_HTTPHEADER,
    array(
        'Accept: application/json',
        'authorization: Bearer '. $ApiKey;
    )
);

curl_setopt($th, CURLOPT_URL, 'https://api.clashroyale.com/v1/players/'.$x.$tag.'/upcomingchests');

curl_setopt($th, CURLOPT_RETURNTRANSFER, 1);

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

$stast = json_decode($t,true);

print_r($stast);

Çıktı

Yazımı burada sonlandırıyorum. Kod örneklerini bugün 21.00 civarlarında github kütüphaneme eklerim ve burada paylaşırım. İyi Günler dilerim.

+ Demo ve kaynak kodlar siteye eklenmştir

Bir cevap yazın

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