randomhost/steamsignature

以 PNG 图片形式显示 Steam 玩家的在线状态。

2.0.0-RC1 2024-02-03 14:13 UTC

This package is auto-updated.

Last update: 2024-09-03 15:43:43 UTC


README

Build Status

randomhost/steamsignature

1. 目的

此包读取 Valve 的 Steam 平台的 Steam Web-API社区 XML 数据,并将玩家的当前在线状态以 PNG 图片的形式显示,设计用于论坛和博客签名。

包含的链接目标方法检测玩家是否正在玩多人服务器,并返回玩家的 Steam 个人资料页面的 URL 或用于加入游戏的 URL(如果游戏支持使用本地安装的 Steam 客户端加入)。

2. 示例

Example Signature

3. 要求

  • PHP 8.x
  • 处理国际字符和表情的 mbstring 扩展
  • 用于渲染图像的 GD 扩展
  • Composer
  • 在服务器上执行 shell 命令的基本知识

注意:安装此包的唯一官方支持方式是通过 Composer。然而,在理论上,可以在本地计算机上安装 PHP 8 和 Composer,然后在该处运行安装,然后将 Composer 创建的 vendor 文件夹上传到服务器,如果无法访问 shell。

4. 安装

重要:此包使用 Composer 作为 PHP 的依赖关系管理器来检查系统要求并安装包依赖项。在尝试使用此包之前,请确保已安装。

以下示例假设您的 Web 服务器在用户帐户 www-data 下运行,composer 已安装到系统 $PATH 中,并且您有有效的 sudo 设置来以不同用户运行 shell 命令。

在这种情况下,您只需在服务器上包含此 README.md 的同一目录中运行此命令

sudo -u www-data composer install

5. 使用

使用此包的基本方法可能如下所示

<?php

declare(strict_types=1);

use randomhost\Steam\API;
use randomhost\Steam\Signature;

require_once '/path/to/vendor/autoload.php';

// setup directories
$imageDir = '/path/to/images/';
$fontsDir = '/path/to/fonts/';
$cacheDir = '/path/to/cache/';

// init an API instance for talking to the Steam Web API
$api = new API('yourSteamApiKey');

// resolve custom URL into steam ID
$steamId = $api->resolveVanityUrl('yourCustomProfileUrl');

// init Signature instance
$signature = new Signature($api, $steamId, $imageDir, $fontsDir, $cacheDir);

// renders the picture
$signature->render();

// returns a link to the user's profile page or a Steam join link
$signature->getLinkTarget();

上面的示例应该大部分是自我解释的。

必须使用个人 API 密钥初始化 API 类。您可以从 Steam 开发者网站 获取您的 API 密钥。

API 类是 Steam Web-API 的非常有限的实现,不应直接使用,除了一个方法之外

  1. API::resolveVanityUrl($vanityUrl)
    将给定的 vanity URL 解析为 64 位 Steam ID,准备传递给 Signature 类构造函数。

Signature 类提供两个公共方法

  1. Signature::render()
    直接将签名图像输出到网页浏览器。

    注意:此方法必须是唯一发送输出到网页浏览器的代码。如果您收到“无法修改头部信息”错误,请确保您的应用程序在调用 Signature::render() 之前没有生成任何输出。另外,在调用此方法之后不允许生成任何输出,因为它会破坏图像。

  2. Signature::getLinkTarget()
    返回指向 Steam 用户个人资料页面的链接或指向用户当前正在玩的游戏的加入链接(如果游戏支持通过 Steam 加入)。

此脚本的示例实现可以在 src/www/ 文件夹中找到。

6. 许可证

请参阅LICENSE.txt以获取完整的许可详情。