Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
 Аватар для Armando111
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 246

Steam API список игр пользователя

10.08.2016, 22:25. Показов 5660. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$url = file_get_contents_curl("http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=".$steamauth['apikey']."&steamid=".$_SESSION['steamid']."&format=json");
        $content = json_decode($url, true);
        //foreach($content['response']['games'][0]['appid'] as $appid)
        //foreach($content->result->games as $appid)
        $appid = array();
        for($i=0;i<$content->result->game_count;$i++)
        {
        //$_SESSION['games'] = $appid;
        $appid[] = $content['response']['games'][$i]['appid'];
        $stringRequest = implode(",", $appid);
        $_SESSION['games'] = $appid[2];
//в другом файле выводиться переменная $_SESSION['games']
        }
Вот так я пытаюсь сделать, но ничего не работает.
Мне нужно узнать есть ли нужная мне игра у пользователя.
Но пока что пытаюсь просто узнать какие есть, получилось вывести на экран только первую в списке
вот так
PHP
1
$content['response']['games'][0]['appid'];
по другому ни чего не выводит. в чём проблема?
Что мне делать? Помогите пожалуйста!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2016, 22:25
Ответы с готовыми решениями:

Steam API, получение ID пользователя
В общем у меня на сайте есть функция &quot;использовать аватар из Steam&quot;, но вот я не очень в нем разобрался, и для пользователей, которые хотят...

Steam API - как можно получить медиану цен через API?
Ребят, как можно получить медиану цен через API ? Интересует количество продаж за последний день. Инфу по предмету получаю таким...

Запуск игр steam
Всем привет, у меня Linux Mint 17.1, установил доту, когда включается вижу красный экран, не подскажите что делать? Ссылка на скрин: ...

6
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
10.08.2016, 23:55
Armando111, вам вообще просто вывести нужно на экран? или получить и загнать в массив какой нибудь?

Я вот тут попробовал, все нормально выводится:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$key = '...';
$userid = '76561198082233645';
 
$url = file_get_contents('http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key='. $key .'&steamid='. $userid .'&format=json');
 
$content = json_decode($url);
$coin = $content-> response -> game_count;
 
 
for ($i = 0; $i < $coin; $i++) {
 
$appid = $content-> response -> games[$i] -> appid;
 
echo $appid . '<br>';
 
}
Сразу оговорюсь, в PHP я новичок
0
 Аватар для Armando111
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 246
11.08.2016, 19:28  [ТС]
Почему то вот тут у меня работает только с 0 вместо $i
PHP
1
$appid = $content-> response -> games[$i] -> appid;
Добавлено через 2 минуты
Цитата Сообщение от Armando111 Посмотреть сообщение
Почему то вот тут у меня работает только с 0 вместо $i
Нет, теперь вообще не работает

Добавлено через 8 минут
PHP
1
2
3
4
5
6
7
 $coin = $content['response']['game_count'];
        for($i=0;$i<$coin;$i++)
        {
 
        $appid = $content['response']['games'][$i]['appid'];
        $_SESSION['games'] = $appid;
}
Вот, вот так вот только выводит последний элемент.

Добавлено через 5 минут
Теперь такая проблема, как мне найти есть ли нужная игра? Вот это не работает
PHP
1
2
3
if($appid=='730'){
        $_SESSION['games'] = $appid;
        }
Добавлено через 18 часов 43 минуты
#UP
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
11.08.2016, 22:14
Armando111, простите что забросил вашу тему.

Необходимо получить данные через цикл и сразу заносить их в массив с ключом вида и дальше работать только с массивом данных для сравнения и прочей выборки:

PHP
1
2
3
$arr[0] = "730"; 
$arr[1] = "450"; 
$arr[2] = "9630";
Дальше искать по критериям в массиве через например array_search().

Но это я так виду ситуацию.

Кстати, вот такой вариант у меня работает, но почему то для всех значений у меня один ключ "0". Тем самым, искать в массиве не получается. Нужно просто это доработать.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
$key = 'D47AF98B4CD8AD60549C0367885BB4E6';
$userid = '76561198082233645';
 
$url = file_get_contents('http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key='. $key .'&steamid='. $userid .'&format=json');
 
$content = json_decode($url, true);
$appid = array();
 
$coin = $content['response']['game_count'];
for ($i = 0; $i < $coin; $i++) {
$appid = $content['response']['games'][$i]['appid'];
 
$arr = explode(", ", $appid);
print_r($arr);
}
 
/* 
 
вот так можно сравнить, но работает очень криво
 
$selectgame = current($arr);
 
    if ($selectgame == '4500') {
        echo 'Уже есть!';
    }
}
*/
Но моих мозгов не хватает. Лучше напишите в раздел https://www.cyberforum.ru/php-beginners/. Там чаще помогают
0
 Аватар для Armando111
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 246
11.08.2016, 23:07  [ТС]
А есть кто нибудь тут кто в этом разбирается?
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
12.08.2016, 02:47
Лучший ответ Сообщение было отмечено Armando111 как решение

Решение

Armando111, я не знаю как, но я что-то сделал и оно работает. Правда статично, но думаю подставляя ваши $_SESSION данные, все должно получиться.

Получаем JSON -> Формируем из данных цикла массив -> Ищем совпадения в массиве - по результату совпадений, выводим сообщение.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
$key = '...'; // свой ключ
$userID = '76561198082233645';
 
global $getID;
       $getID = '311340'; // сюда вы будете принимать значение
 
$url = file_get_contents('http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key='. $key .'&steamid='. $userID .'&format=json');
$content = json_decode($url);
 
$coin = $content-> response -> game_count;
$arr = array();
for ($i=0; $i < $coin; $i++) {
 
$appid = $content-> response -> games[$i] -> appid; // получаем appid игры из JSON
 
array_push($arr, $appid); // добавляем данные из цикла в массив
}
 
// начинаем проверять, есть ли игра у пользователя
if (in_array($getID, $arr)) {
    echo 'Игра с appid ' .$getID. ' есть у пользователя!';
} else {
    echo 'Игры с id ' .$getID. ' у пользователя нет!';
}
На всякий случай, прикладываю свой *.php файл.
Вложения
Тип файла: rar get1.rar (650 байт, 9 просмотров)
1
 Аватар для Armando111
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 246
13.08.2016, 14:25  [ТС]
Спасибо, теперь всё работает. У меня оказывается в функции json_decode параметр второй стоял true, из-за этого ни чего не работало. Теперь всё отлично. Спасибо большое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2016, 14:25
Помогаю со студенческими работами здесь

Steam и Api
Здравствуйте!Для общего развития решил сделать сайт,поставить авторизацию через стим по данной статье...

Steam API
Здравствуйте!!! Возник такой вопрос: нужно сделать мониторинг сервера одной игры (Steam-версия) что-то вроде этого: http://steamserv.ru/....

Steam api
https://www.cyberforum.ru/php-api/thread1115049.html вот статья по поводу стим апи(регистрация) Хотел попробовать но возникли проблемы...

Запуск игр под Steam!
Добрый вечер уважаемые форумчане. С недавних пор, стал пользователем Linux Mint 17 &quot;Qiana&quot;.(как я понимаю, сборка под Ubuntu...

Работа со steam api
Всем привет. Никак не могу разобраться, как работать со steam api. Может кто-нибудь рассказать, как узнавать цену определенного предмета на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru