public function steamAction() { $model = new PageModel(); incFile('modules/page/system/inc/OpenId.inc.php'); $steamApi = "0426AC32C69FAF916BE374D15CA29B1D"; // новый ключ!!! $openid = new LightOpenID(SITE_URL . 'page/steam'); if (!$openid->mode) { $openid->identity = 'http://steamcommunity.com/openid/?l=english'; redirect($openid->authUrl()); } elseif ($openid->mode == 'cancel') { $errorMessage = '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={$steamApi}&steamids={$matches['1']}"; $json_object = file_get_contents($url); $json_decoded = json_decode($json_object); if ($json_decoded) { $userData = $json_decoded->response->players[0]; if ($matches[1] == $userData->steamid && $userData->steamid) { $isUser = $model->getUserBySteam($userData->steamid); if ($isUser->id) { setSession('user', $isUser->id, false); redirect(url($isUser->id)); } else { $errorMessage = 'Не прикреплен Steam аккаунт'; } } else { $errorMessage = 'Попробуйте еще раз позже'; } } else { $errorMessage = 'Попробуйте еще раз позже'; } unset($json_object, $json_decoded); } else { $errorMessage = 'User is not logged in.'; } } setMyCookie('error', $errorMessage, time() + 5); redirect(url()); }