imitronov

imitronov

Кто я?

Веб разработчик. Работаю с WordPress, 1C-Bitrix, modX, OctoberCMS. Делаю обзоры онлайн сервисов и малоизвестных CMS.


О чем я пишу


Свежие записи

Авторизация через Steam

PHP скрипт для авторизации пользователей на сайте через аккаунт Steam с помощью API.

Для начала Вам нужно получить ключ Steam Web API. Зарегистрировать ключ Steam Web API можно по этой ссылке. Обратите внимание, что для получения доступа к регистрации ключа — необходимо пополнить баланс Steam аккаунта на 5$.

В официальной документации по API сказано, что авторизацию можно реализовать с помощью стандарта OpenID. Для облегчения задачи скачиваем готовую библиотеку LightOpenID.

Теперь пишем сам скрипт получения данных о пользователе на php:

<?php
require '/lightopenid/openid.php';

$steamkey = 'Ваш Steam Key';
$script = 'http://ваш.сайт/этот.скрипт';

try {
 $openid = new LightOpenID($script);
 if(!$openid->mode) {
 $openid->identity = 'http://steamcommunity.com/openid/?l=russian';
 header('location: '.$openid->authUrl());
 } elseif ($openid->mode == 'cancel') {
 echo 'User has canceled authentication';
 } else {
 if($openid->validate()) {
 $id = $openid->identity;
 $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
 preg_match($ptn, $id, $matches);

 $url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$steamkey&steamids=$matches[1]";
 $json_object = file_get_contents($url);
 $json_decoded = json_decode($json_object);

 foreach ($json_decoded->response->players as $player) {
 echo '<img src="'.$player->avatarmedium.'"> <a href="'.$player->profileurl.'">'.htmlspecialchars($player->personaname).'</a><hr><pre>';
 var_dump($player);
 echo '</pre>';
 }
 } else {
 echo 'User is not logged in.';
 }
 }
} catch(ErrorException $e) {
 echo $e->getMessage();
}

?>