relisoft/php-steam-user-library

用于从API获取数据的Steam PHP库

1.3 2018-11-21 11:16 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:39:26 UTC


README

此库可以帮助那些想要使用Steam API并从中获取用户数据的人。只需几行代码,您就可以获取关于用户的所有信息。

安装

composer require relisoft/php-steam-user-library

内容

  • 用户摘要
  • 朋友
  • 游戏统计
  • 缓存结果
  • 最近玩过的游戏
  • 库存(包含物品详情)
  • 通过Steam登录

待办事项

  • 成就
  • 交易支持

如何使用它?

主页展示者

public function renderSingle()
{
    $player = new Player("76561198151608925");
    $request = new Request();
    $request->getPlayerFriends($player,2);
    $request->getPlayerRecentlyPlayedGames($player);
    $request->getPlayerInventory($player,Games::CSGO);
    Dumper::dump($player);
}
但是如果我们需要缓存结果怎么办?

我们将使用新功能,并将自动加载完整的用户资料并将其自动缓存。这是缓存功能调用,所以如果某些结果发生变化,它将自动重新加载数据。

public function renderSingle()
{
    $player = new Player("76561198151608925");
    $request = new Request();
    $player = $request->getFullData($player); // This function will load full profile (profile, recent games, friends, inventory)
    $this->template->items = $player->getInventory()->getData();
}

转储

Image of dump data

获取/设置数据

您在上面看到的每个变量都有一个get和set函数,您可以设置每个变量并获取它。

$player->getState()
$player->getLastlogoff()
$player->getFriends()

个人状态

个人状态是一个类,您可以将其从API值转换为英语语言或编辑为HTML返回值。

Relisoft\Steam\Src\API\PersonaState::getVerbState($player->getPersonaState())

登录

登录按钮

为此,我创建了一个带有两个静态函数的Button类,这两个函数将返回img的源链接。

<div class="container">
    <a href="{link login!}"><img src="{Relisoft\Steam\Src\Login\Button::rectangle()}"></a>
</div>
Relisoft\Steam\Src\Login\Button::rectangle()
Relisoft\Steam\Src\Login\Button::square()

登录函数

为此,我创建了一个名为Login的类,它使用$session存储用户数据。您必须添加自己的$session源或使用默认的$_SESSION。我这样做是因为我在所有项目中使用nette/http,它具有更好的session API。

创建实例
$this->login = new Login($this->session->getSection("steam"));
OR
$this->login = new Login($_SESSION);
用法
public function handleLogin()
    {
        $login = $this->login; 

        if($login->isLogged()) // If is use logged in
        {
            $this->flashMessage("User is logged."); //Flash message like echo
            $this->redirect("single",$this->session->getSection("steam")->user); // This you can edit for your purpose
        }
        else
        {
            $object = $login->auth(); // Auth user and return states

            if($object) //IF SUCCESS RETURN STEAM ID
            {
                $this->flashMessage("successfuly logged in $object"); //Echo some text
                $this->redirect("single",$object); // Redirect to another page with parameter $object -> returning STEAM ID
            }
            elseif($object == $login::FAILED)
            {
                $this->flashMessage("Steam is not logged in!"); //Echo that's failed
                $this->redirect("this"); //Redirect
            }
            elseif($object == $login::CANCEL) //Echo that's your cancel process
            {
                $this->flashMessage("Cancel by user");
                $this->redirect("this");
            }
        }
    }
登录状态
const CANCEL = "cancel";
const SUCCESS = "success";
const FAILED = "failed";

依赖

  • nette/utils
  • nette/neon
  • nette/caching
  • PHP 5.4+