본문 바로가기

정리중인 카테고리/전공 기술

[PHP] 세션(Session)을 사용한 스팀(Steam) 오픈아이디(OpenID) 사용법 예제.

<?php

include "apikey.php"; // in Var $api

include "openid.php"; // go To download LightOpenID Lib

function getContents($URL) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_URL, $URL);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}


$OpenID = new LightOpenID("yourDomain");


session_start();


if(!$OpenID->mode) {

if(isset($_GET['login'])) {

$OpenID->identity = "http://steamcommunity.com/openid";

header("Location: {$OpenID->authUrl()}");

}


if(!isset($_SESSION['T2SteamAuth'])) {

$login = "<div id=\"login\">환영합니다.<br/>스팀 로그인 하세요.<br/><a href=\"?login\"><img src=\"http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_small.png\"/></a></div>";

}

} elseif($OpenID->mode == "cancel") {

echo "스팀 로그인 인증을 취소했습니다.";

} else {

if(!isset($_SESSION['T2SteamAuth'])) {

$_SESSION['T2SteamAuth'] = $OpenID->validate() ? $OpenID->identity : null;

$_SESSION['T2SteamID64'] = str_replace("http://steamcommunity.com/openid/id/", "", $_SESSION['T2SteamAuth']);


if($_SESSION['T2SteamAuth'] != null) {

$Steam64 = str_replace("http://steamcommunity.com/openid/id/", "", $_SESSION['T2SteamAuth']);

$profile = getContents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={$api}&steamids={$Steam64}&format=json");

$buffer = fopen("cache/{$Steam64}.json", "w+");

fwrite($buffer, $profile);

fclose($buffer);

} header("Location: /");

}

}


if(isset($_SESSION['T2SteamAuth'])) {

$login = "<div id=\"login\">스팀 로그인 완료. <a href=\"?logout\">로그아웃</a></div>";

}


if(isset($_GET['logout'])) {

unset($_SESSION['T2SteamAuth']);

unset($_SESSION['T2SteamID64']);

header("Location: /");

}


if($Steam64 == null) {

$Steam64 = $_SESSION['T2SteamID64'];

}


// $steam = json_decode(getContents("cache/{$_SESSION['T2SteamID64']}.json"));

$steam = json_decode(getContents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={$api}&steamids={$Steam64}&format=json"));


echo $login;


echo "{$steam->response->players[0]->steamid}<br/>{$steam->response->players[0]->personaname}<br/><img src=\"{$steam->response->players[0]->avatar}\"/><br/><img src=\"{$steam->response->players[0]->avatarmedium}\"/><br/><img src=\"{$steam->response->players[0]->avatarfull}\"/>";

?>







Steam Web API - Valve Developer Community 를 방문하여 다양한 정보를 확인하세요.