PHP - получение ссылки на аватар по SteamID

Тема в разделе "Веб-технологии", создана пользователем GANZ, 23 июл 2015.

  1. GANZ

    GANZ

    Сообщения:
    119
    Симпатии:
    16
    Подскажите, как получить ссылку на аватар по SteamID
    Данный способ очень долго обрабатывается, а на странице нужно отобразить 30 аватарок..
    Заранее спасибо

    PHP:
    <?
    $id 'STEAM_0:0:34774273';
    $x substr($id81);
    $y substr($id10);
    $z = (string) ($y 2) + 7960265728 $x;
    $steamid '7656119'.$z;
    $slf 'http://steamcommunity.com/profiles/'.$steamid.'/?xml=1';
    $url simplexml_load_file($slf);
    echo 
    '<img src="'.$url->avatarIcon.'">';
    ?>
     
  2. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    Через steam web api
     
  3. GANZ

    GANZ

    Сообщения:
    119
    Симпатии:
    16
    можно поподробнее?
     
  4. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    Нужно получить ключ для использования API: http://steamcommunity.com/dev/apikey
    Потом посмотреть нужный метод на вики: https://developer.valvesoftware.com/wiki/Steam_Web_API
    Так, получаем инфу о Робине Уокере (в твоём случае — его аватар):

    PHP:
    <?
    $shit file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XXXXXXXXXXXXXXXXXXXXXXX&steamids=76561197960435530");
    $json json_decode($shit);
    print(
    "<pre>");
    print_r($json);
    print(
    "</pre>");

    echo 
    $json->response->players[0]->avatarfull;
    echo 
    "<br>";
    echo 
    "<img src=\"{$json->response->players[0]->avatarfull}\">";
    ?>
    В этом скрипте "XXXXXXXXXXXXXXXXXXXXXXX" нужно заменить на свой ключ, полученный ранее.
    Строки
    PHP:
    $json json_decode($shit);
    print(
    "<pre>");
    print_r($json);
    print(
    "</pre>");
    выводят содержимое ответа в форме json.

    Согласно той же документации, можно получить до 100 массивов за 1 запрос — данные нужно указывать через запятую: steamids=76561197960435530,76561197960435530,76561197960435530.
     
    GANZ нравится это.
  5. GANZ

    GANZ

    Сообщения:
    119
    Симпатии:
    16
    спасибо большое, вечером попробую разобраться)
     
  6. GANZ

    GANZ

    Сообщения:
    119
    Симпатии:
    16
    получилось, но есть касяк, когда делаешь запрос steamids через запятую
    они загружаются не по порядку, как записаны, а в случайном порядке
    и вот таким способом уже не получается идентифицировать аватарки

    steamids=76561197960435530,76561197960435530,76561197960435530

    $n - переменная
    $json->response->players[$n]->avatar

    по идее должно быть так
    $json->response->players[0]->avatar это 76561197960435530
    $json->response->players[1]->avatar это 76561197960435530
    $json->response->players[2]->avatar это 76561197960435530

    а на деле выходит, что они перемешиваются
    подскажите что можно сделать, я уже запарился
     
  7. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    Ну самый простой и очевидный метод - вложенный цикл:
    PHP:
    <?php
    $arr
    [] = "76561197960435530";
    $arr[] = "76561197960435531";
    $arr[] = "76561197960435532";


    $shit file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=ХХХХХХХХХХХХХХХХХХ&steamids=76561197960435530,76561197960435531,76561197960435532");
    $json json_decode($shit);

    foreach(
    $arr as $id)
    {
        foreach(
    $json->response->players as $player)
        {
            if(
    $player->steamid === $id)
            {
                echo 
    $player->steamid.'</br>';
                echo 
    "<img src='".$player->avatarfull."'> </br>\n";
                break;
            }
        }
    }
    ?>
     
    Lord FEAR и GANZ нравится это.
  8. GANZ

    GANZ

    Сообщения:
    119
    Симпатии:
    16
    забыл написать)
    Спасибо, да так все получилось