Steam Api Kullanımı Örnekleri / PHP

Kruvazör

Yazılım Ekibi Lideri
28 Mar 2020
1,722
2,539
Wrong Side Of Heaven



Herkese merhaba arkadaşlar
Bugün sizinle
Steam Web Api kullanımını konuşacağız.

öncelikle sizinle
2019 tarihli bir konuyu göstermek istiyorum
bu konunun eskimesi ve
örneksiz olması dolayısıyla yenileme ihtiyacı hissettim.

@Hichigo hakkını helal eder inşallah :)


8q1kzfq.jpg


Steam Api Key Alma:
Bu linke tıklayarak api key alma adresine gidebilirsiniz.

Dokümantasyon:
Steam Community :: Steam Web API Documentation

Peki bu Api ile neler yapabiliriz?
iki basit örnek ile hem genel kullanımı hem dönen verileri göreceğiz.


Örnek 1: Sea of Thieves (XML)
Şimdi sizinle Sea of Thieves oyununa ait son güncellemenin boyutunu, güncelleme notlarını ve sürümünü çekelim.
bu örneğimizde key gerekmemektedir oyununuzun ID'sini bilmeniz yeterli.
Steam App ID Bulma
PHP:
<?php

$xml = new DOMDocument();
$xml->load('https://api.steampowered.com/ISteamNews/GetNewsForApp/v0002/?appid=1172620&count=1&maxlength=30000000000000&format=xml');
// api adresimizi veriyoruz appid için https://steamdb.info/apps/ adresini kullanabilirsiniz. maxlength ise çekilen içeriğin kaç karakterlik olacağıdır xml de dönen veri tipi.

$baslik = $xml->getElementsByTagName('title'); 
$icerik = $xml->getElementsByTagName('contents');

$html = "<ul>";

foreach ($baslik as $bas) {
    $html .= "<li>" . $bas->nodeValue . "</li>";

    foreach ($icerik as $icer) {
        $html .= "<li>" . $icer->nodeValue . "</li>";
    }
}


$html .= "</li>";



$newstr = strstr($icer->nodeValue, " Download Size:");
//icerikten gelen verinin ayrıştırılması

echo $newstr;
echo $html;

?>

ÇIKTI
j38uemd.jpg


Örnek 2:Kullanıcı bilgisi çekme (JSON)
Şimdi de sizinle Steam ID'sini bildiğiniz bir kullanıcının verilerini çekelim.
Kişinin profiline tıklayıp görebileceğinizi biliyorum ama böylesi daha havalı.

Steam ID bulucu


PHP:
<?php
$api_key = "XXXXXXXXXXXXXXXXXXX";
//aldığınız api key
$steamid = "XXXXXXXXXXXXXXXXX";
//kişinin steamidsi
$api_url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$api_key&steamids=$steamid";
//api adresi
$json = json_decode(file_get_contents($api_url), true);
//json
function personaState($state)
//kişinin aktiflik durumu
{
    if ($state == 1)
    {
        return "Online";
    }
    elseif ($state == 2)
    {
        return "Busy";
    }
    elseif ($state == 3)
    {
        return "Away";
    }
    elseif ($state == 4)
    {
        return "Snooze";
    }
    elseif ($state == 5)
    {
        return "Looking to trade";
    }
    elseif ($state == 6)
    {
        return "Looking to play";
    }
    else
    {
        return "Offline";
    }
    
}
?>
<html lang="tr">
    <head>
    </head>
    <body>
        <!--jsondan gelen verilerin ekrana yazdırılması-->
        <h1><?=$json["response"]["players"][0]["personaname"];?></h1>
        <img src="<?=$json["response"]["players"][0]["avatarfull"];?>">
        <ul>
            <li>SteamID64: <?=$json["response"]["players"][0]["steamid"];?></li>
            <li>Display Name: <?=$json["response"]["players"][0]["personaname"];?></li>
            <li>URL: <?=$json["response"]["players"][0]["profileurl"];?></li>
        
            <li>Status:- <?= personaState($json["response"]["players"][0]["personastate"]) ?></li>
            <li>Real Name: <?=$json["response"]["players"][0]["realname"];?></li>
            
            <li>Joined: <?=date('d M Y H:i:s Z',$json["response"]["players"][0]["timecreated"]);?></li>
            <!--steam apisi tarih olarak unix time yani  Ocak 1970'ten beri geçen saniye sayısına denilen sayısal veri tipini döndürüyor bu da onun çevirilmiş hali-->
            <li>Country: <?=$json["response"]["players"][0]["loccountrycode"];?></li>
        </ul>
    </body>
</html>
ÇIKTI
c4hu5ia.jpg


Kişinin
oyun süreleri, oyunlarda kazandığı başarımlar ve başka bir sürü veriyi de benzer yöntemler ile çekebiliyorsunuz.
verdiğim doküman ve örneklerin işinize yaraması dileğiyle.


Okuduğunuz için teşekkürler.

 

Adanalıtrojan

Kıdemli Üye
25 Haz 2021
2,018
1,051
16
Konya Ovası Askeri Tesislerinde



Herkese merhaba arkadaşlar
Bugün sizinle
Steam Web Api kullanımını konuşacağız.

öncelikle sizinle
2019 tarihli bir konuyu göstermek istiyorum
bu konunun eskimesi ve
örneksiz olması dolayısıyla yenileme ihtiyacı hissettim.

@Hichigo hakkını helal eder inşallah :)


8q1kzfq.jpg


Steam Api Key Alma:
Bu linke tıklayarak api key alma adresine gidebilirsiniz.

Dokümantasyon:
Steam Community :: Steam Web API Documentation

Peki bu Api ile neler yapabiliriz?
iki basit örnek ile hem genel kullanımı hem dönen verileri göreceğiz.


Örnek 1: Sea of Thieves (XML)
Şimdi sizinle Sea of Thieves oyununa ait son güncellemenin boyutunu, güncelleme notlarını ve sürümünü çekelim.
bu örneğimizde key gerekmemektedir oyununuzun ID'sini bilmeniz yeterli.
Steam App ID Bulma
PHP:
<?php

$xml = new DOMDocument();
$xml->load('https://api.steampowered.com/ISteamNews/GetNewsForApp/v0002/?appid=1172620&count=1&maxlength=30000000000000&format=xml');
// api adresimizi veriyoruz appid için https://steamdb.info/apps/ adresini kullanabilirsiniz. maxlength ise çekilen içeriğin kaç karakterlik olacağıdır xml de dönen veri tipi.

$baslik = $xml->getElementsByTagName('title');
$icerik = $xml->getElementsByTagName('contents');

$html = "<ul>";

foreach ($baslik as $bas) {
    $html .= "<li>" . $bas->nodeValue . "</li>";

    foreach ($icerik as $icer) {
        $html .= "<li>" . $icer->nodeValue . "</li>";
    }
}


$html .= "</li>";



$newstr = strstr($icer->nodeValue, " Download Size:");
//icerikten gelen verinin ayrıştırılması

echo $newstr;
echo $html;

?>

ÇIKTI
j38uemd.jpg


Örnek 2:Kullanıcı bilgisi çekme (JSON)
Şimdi de sizinle Steam ID'sini bildiğiniz bir kullanıcının verilerini çekelim.
Kişinin profiline tıklayıp görebileceğinizi biliyorum ama böylesi daha havalı.

Steam ID bulucu


PHP:
<?php
$api_key = "XXXXXXXXXXXXXXXXXXX";
//aldığınız api key
$steamid = "XXXXXXXXXXXXXXXXX";
//kişinin steamidsi
$api_url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$api_key&steamids=$steamid";
//api adresi
$json = json_decode(file_get_contents($api_url), true);
//json
function personaState($state)
//kişinin aktiflik durumu
{
    if ($state == 1)
    {
        return "Online";
    }
    elseif ($state == 2)
    {
        return "Busy";
    }
    elseif ($state == 3)
    {
        return "Away";
    }
    elseif ($state == 4)
    {
        return "Snooze";
    }
    elseif ($state == 5)
    {
        return "Looking to trade";
    }
    elseif ($state == 6)
    {
        return "Looking to play";
    }
    else
    {
        return "Offline";
    }
   
}
?>
<html lang="tr">
    <head>
    </head>
    <body>
        <!--jsondan gelen verilerin ekrana yazdırılması-->
        <h1><?=$json["response"]["players"][0]["personaname"];?></h1>
        <img src="<?=$json["response"]["players"][0]["avatarfull"];?>">
        <ul>
            <li>SteamID64: <?=$json["response"]["players"][0]["steamid"];?></li>
            <li>Display Name: <?=$json["response"]["players"][0]["personaname"];?></li>
            <li>URL: <?=$json["response"]["players"][0]["profileurl"];?></li>
       
            <li>Status:- <?= personaState($json["response"]["players"][0]["personastate"]) ?></li>
            <li>Real Name: <?=$json["response"]["players"][0]["realname"];?></li>
           
            <li>Joined: <?=date('d M Y H:i:s Z',$json["response"]["players"][0]["timecreated"]);?></li>
            <!--steam apisi tarih olarak unix time yani  Ocak 1970'ten beri geçen saniye sayısına denilen sayısal veri tipini döndürüyor bu da onun çevirilmiş hali-->
            <li>Country: <?=$json["response"]["players"][0]["loccountrycode"];?></li>
        </ul>
    </body>
</html>
ÇIKTI
c4hu5ia.jpg


Kişinin
oyun süreleri, oyunlarda kazandığı başarımlar ve başka bir sürü veriyi de benzer yöntemler ile çekebiliyorsunuz.
verdiğim doküman ve örneklerin işinize yaraması dileğiyle.


Okuduğunuz için teşekkürler.

Eline sağlık abi
 

Tengry

Üye
22 Şub 2023
76
46
Ötüken



Herkese merhaba arkadaşlar
Bugün sizinle
Steam Web Api kullanımını konuşacağız.

öncelikle sizinle
2019 tarihli bir konuyu göstermek istiyorum
bu konunun eskimesi ve
örneksiz olması dolayısıyla yenileme ihtiyacı hissettim.

@Hichigo hakkını helal eder inşallah :)


8q1kzfq.jpg


Steam Api Key Alma:
Bu linke tıklayarak api key alma adresine gidebilirsiniz.

Dokümantasyon:
Steam Community :: Steam Web API Documentation

Peki bu Api ile neler yapabiliriz?
iki basit örnek ile hem genel kullanımı hem dönen verileri göreceğiz.


Örnek 1: Sea of Thieves (XML)
Şimdi sizinle Sea of Thieves oyununa ait son güncellemenin boyutunu, güncelleme notlarını ve sürümünü çekelim.
bu örneğimizde key gerekmemektedir oyununuzun ID'sini bilmeniz yeterli.
Steam App ID Bulma
PHP:
<?php

$xml = new DOMDocument();
$xml->load('https://api.steampowered.com/ISteamNews/GetNewsForApp/v0002/?appid=1172620&count=1&maxlength=30000000000000&format=xml');
// api adresimizi veriyoruz appid için https://steamdb.info/apps/ adresini kullanabilirsiniz. maxlength ise çekilen içeriğin kaç karakterlik olacağıdır xml de dönen veri tipi.

$baslik = $xml->getElementsByTagName('title');
$icerik = $xml->getElementsByTagName('contents');

$html = "<ul>";

foreach ($baslik as $bas) {
    $html .= "<li>" . $bas->nodeValue . "</li>";

    foreach ($icerik as $icer) {
        $html .= "<li>" . $icer->nodeValue . "</li>";
    }
}


$html .= "</li>";



$newstr = strstr($icer->nodeValue, " Download Size:");
//icerikten gelen verinin ayrıştırılması

echo $newstr;
echo $html;

?>

ÇIKTI
j38uemd.jpg


Örnek 2:Kullanıcı bilgisi çekme (JSON)
Şimdi de sizinle Steam ID'sini bildiğiniz bir kullanıcının verilerini çekelim.
Kişinin profiline tıklayıp görebileceğinizi biliyorum ama böylesi daha havalı.

Steam ID bulucu


PHP:
<?php
$api_key = "XXXXXXXXXXXXXXXXXXX";
//aldığınız api key
$steamid = "XXXXXXXXXXXXXXXXX";
//kişinin steamidsi
$api_url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$api_key&steamids=$steamid";
//api adresi
$json = json_decode(file_get_contents($api_url), true);
//json
function personaState($state)
//kişinin aktiflik durumu
{
    if ($state == 1)
    {
        return "Online";
    }
    elseif ($state == 2)
    {
        return "Busy";
    }
    elseif ($state == 3)
    {
        return "Away";
    }
    elseif ($state == 4)
    {
        return "Snooze";
    }
    elseif ($state == 5)
    {
        return "Looking to trade";
    }
    elseif ($state == 6)
    {
        return "Looking to play";
    }
    else
    {
        return "Offline";
    }
   
}
?>
<html lang="tr">
    <head>
    </head>
    <body>
        <!--jsondan gelen verilerin ekrana yazdırılması-->
        <h1><?=$json["response"]["players"][0]["personaname"];?></h1>
        <img src="<?=$json["response"]["players"][0]["avatarfull"];?>">
        <ul>
            <li>SteamID64: <?=$json["response"]["players"][0]["steamid"];?></li>
            <li>Display Name: <?=$json["response"]["players"][0]["personaname"];?></li>
            <li>URL: <?=$json["response"]["players"][0]["profileurl"];?></li>
       
            <li>Status:- <?= personaState($json["response"]["players"][0]["personastate"]) ?></li>
            <li>Real Name: <?=$json["response"]["players"][0]["realname"];?></li>
           
            <li>Joined: <?=date('d M Y H:i:s Z',$json["response"]["players"][0]["timecreated"]);?></li>
            <!--steam apisi tarih olarak unix time yani  Ocak 1970'ten beri geçen saniye sayısına denilen sayısal veri tipini döndürüyor bu da onun çevirilmiş hali-->
            <li>Country: <?=$json["response"]["players"][0]["loccountrycode"];?></li>
        </ul>
    </body>
</html>
ÇIKTI
c4hu5ia.jpg


Kişinin
oyun süreleri, oyunlarda kazandığı başarımlar ve başka bir sürü veriyi de benzer yöntemler ile çekebiliyorsunuz.
verdiğim doküman ve örneklerin işinize yaraması dileğiyle.


Okuduğunuz için teşekkürler.

elinize sağlık güzel olmuş.
 

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,492
1,649
Güzel, ön bilgilerle dolu bir konu olmuş.
Steam apisi bildiğim kadarıyla yaygın olarak oyun motorlarının içerisinde kullanılıyor. Yani siz bir co-op oyun yapıyorsunuz bunu steam üzerinden host edip arkadaşlarınızı davet ederek oynuyorsunuz. Arkadaşlarınızın adıydı, istek göndermesiydi, arkadaş listenizdi vs uzayıp gidiyor.

Buda bence üstüne katılarak bir monitör adını verebileceğim, yani bir çok genel bilgiyi tek bir yerde arama çubuğuna yazarak bulabileceğim bir tool değilde daha çok lokalde belki çalışabilecek tool tadında bir proje olabilir. Ya da gerçekten deploy edip kullanışlı bir site haline çevrilebilir. Ki kullanılır da.

Eline, kaş-göz, artık nereye kadar giderse... :D (sağlık olsun)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.