Steam-API

API für Steam

Steam bietet eine große Auswahl an Möglichkeiten, was Entwickler mit deren API alles anstellen können. Login via Steam ist dabei nur eine Sache. Es geht noch viel mehr. Aus diesem Grund habe ich die Steam-API für das WSC entwickelt. Diese Erweiterung unterstützt alle API-Anfragen, wofür ihr kein Steam-Partner sein müsst.

Wie bekomme ich einen Steam-API-Key?

Dafür benötigst ihr zuerst einmal einen Steam-Account. Dieser kann kostenlos erstellt werden. Danach geht ihr auf folgende Seite und könnt einen API-Key registrieren: https://steamcommunity.com/dev/apikey

Wie implementiere ich die API in mein Plugin?

Füge dev.hanashi.wsc.steam-api mit Mindest-Version 1.0.0 als Abhängigkeit in deiner package.xml ein.

Nun kannst du API-Funktionen aufrufen. Jede Funktion wird wie folgt ausgeführt:

PHP
\wcf\system\steam\SteamAPI::execute($interface, $method, $version, $data);


Wir wollen beispielsweise die News für ein Spiel abrufen. Dafür führen wir folgenden Code aus:

PHP
\wcf\system\steam\SteamAPI::execute('ISteamNews', 'GetNewsForApp', 2, ['appid' => 440]);

Als Rückgabe bekommen wir nun die letzten News für das Spiel mit der ID 440.


Es gibt auch Befehle die keine Parameter entgegen nehmen. Dabei wird $data einfach weggelassen:

PHP
\wcf\system\steam\SteamAPI::execute('ISteamWebAPIUtil', 'GetSupportedAPIList', 1);


In der API wurden weitere optionale Parameter implementiert. Schaue dir dazu die Methode wcf\system\steam\SteamAPI::execute an.

Im Falle eines Fehlers wird eine Exception vom Typ wcf\system\exception\SteamException geworfen.

Wie implementiere ich OpenID?

Zuerst benötigst du die OpenID-URL für Steam. Diese kannst du wie folgt generieren lassen:

PHP
\wcf\system\steam\SteamAPI::getOpenIDUrl($redirectUri, $realm);

$redirectUri ist die URL wo Steam den Benutzer hinleiten soll, nachdem er seinen Account auf der Steam-Seite bestätigt hat. Diese Seite muss im nächsten Schritt implementiert werden.

$realm ist die Domain mit Protokoll der Seite (z.B.: https://example.org).


Im nächsten Schritt muss die angegebene Redirect-URI implementiert werden. Dort reicht es folgende Methode auszuführen:

PHP
\wcf\system\steam\SteamAPI::validateOpenID();

Diese gibt die Steam-ID des Benutzers zurück. Danach kann diese für weitere Login-Versuche benutzt werden.

Wo finde ich die möglichen Funktionen für die API?

Die komplette Dokumentation ist hier zu finden: https://tools.hanashi.dev/steam-api-doc/

  • Steam-API 1.2.0

    Es wird nun mindestens WSC 5.5.14 vorausgesetzt.

    • das Plugin funktioniert nun auch mit WSC 6.0
    • Codestyleanpassungen
  • Steam-API 1.1.0

    • CHANGE: Umstellung auf GuzzleHttp
    • CHANGE: SystemException durch Exception ersetzt
    • FIX: http_build_query-Verwendung
  • Steam-API 1.0.2

    • CHANGE: Umstellung auf PSR-12
  • Steam-API 1.0.1 pl 1

    API-Key war noch im Code *facepalm* (ja API-Key ist nun ungültig)

  • Steam-API 1.0.1

    Kompatibilitätsproblem mit anderen Steam-Plugins behoben:

    • Option steam_api_key heißt jetzt ha_steam_api_key
    • Option-Kategorien haben nun das Prefix ha_
    • Gruppenberechtigungskategorien haben nun das Prefix ha_
  • Steam-API 1.0.0