syntax / steam-api
A steam-api client for Laravel 10+
Installs: 74 075
Dependents: 1
Suggesters: 0
Security: 0
Stars: 160
Watchers: 18
Forks: 55
Open Issues: 11
Requires
- php: ^8.1
- ext-bcmath: *
- ext-curl: *
- ext-json: *
- ext-libxml: *
- ext-simplexml: *
- guzzlehttp/guzzle: ^7.8
- laravel/framework: ^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.5|^11.0
- rector/rector: ^1.0
- vlucas/phpdotenv: ^5.6
- dev-master
- 3.0.0
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.2
- 2.1.0
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/composer/laravel/framework-10.48.23
- dev-dependabot/composer/symfony/http-foundation-6.4.14
- dev-dependabot/composer/symfony/process-6.4.14
- dev-laravel10
- dev-laravel9
- dev-bug-fixes
- dev-develop
- dev-laravel5
- dev-Laravel4
This package is auto-updated.
Last update: 2024-11-13 00:12:58 UTC
README
Version Support
Laravel >= 10.0
PHP >= 8.1
This package provides an easy way to get details from the Steam API service. The services it can access are:
ISteamNews
IPlayerService
ISteamUser
ISteamUserStats
ISteamApp
Installation
Begin by installing this package with composer.
"require": {
"syntax/steam-api": "3.*"
}
Next, update composer from the terminal.
composer update syntax/steam-api
Alternately, you can run "composer require syntax/steam-api:dev-master" from the command line.
Lastly, publish the config file. You can get your API key from Steam.
php artisan vendor:publish --provider="Syntax\SteamApi\SteamApiServiceProvider"
Usage
use Syntax\SteamApi\Facades\SteamApi; /** Get Portal 2 */ $apps = SteamApi::app()->appDetails(620); echo $app->first()->name;
Each service from the Steam API has its own methods you can use.
Global
These are methods that are available to each service.
convertId
This will convert the given steam ID to each type of steam ID (64 bit, 32 bit and steam ID3).
Arguments
Possible formats are ID64, id64, 64, ID32, id32, 32, ID3, id3 and 3.
Example usage
SteamApi::convertId($id, $format);
Example Output: convertId
News
The Steam News web api is used to get articles for games.
SteamApi::news()
GetNewsForApp
This method will get the news articles for a given app ID. It has three parameters.
Arguments
Example usage
<?php $news = SteamApi::news()->GetNewsForApp($appId, 5, 500)->newsitems; ?>
Example Output: GetNewsForApp
Player
The Player Service is used to get details on players.
When instantiating the player class, you are required to pass a steamId or Steam community ID.
SteamApi::player($steamId)
GetSteamLevel
This method will return the level of the Steam user given. It simply returns the integer of their current level.
Example Output: GetSteamLevel
GetPlayerLevelDetails
This will return a Syntax\Containers\Player_Level object with full details for the players level.
Example Output: GetPlayerLevelDetails
GetBadges
This call will give you a list of the badges that the player currently has. There is currently no schema for badges, so all you will get is the ID and details.
Example Output: GetBadges
GetOwnedGames
GetOwnedGames returns a list of games a player owns along with some playtime information, if the profile is publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for your own personal details (i.e. the WebAPI key you are using is linked to the steamID you are requesting).
Arguments
Example Output: GetOwnedGames
GetRecentlyPlayedGames
GetRecentlyPlayedGames returns a list of games a player has played in the last two weeks, if the profile is publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for your own personal details (i.e. the WebAPI key you are using is linked to the steamID you are requesting).
Arguments
Example Output: GetRecentlyPlayedGames
IsPlayingSharedGame
IsPlayingSharedGame returns the original owner's SteamID if a borrowing account is currently playing this game. If the game is not borrowed or the borrower currently doesn't play this game, the result is always 0.
Arguments
Example Output: IsPlayingSharedGame
User
The User WebAPI call is used to get details about the user specifically.
When instantiating the user class, you are required to pass at least one steamId or steam community ID.
SteamApi::user($steamId)
ResolveVanityURL
This will return details on the user from their display name.
Arguments
$player = SteamApi::user($steamId)->ResolveVanityURL('gabelogannewell');
Example Output: ResolveVanityURL
GetPlayerSummaries
This will return details on one or more users.
Arguments
// One user $steamId = 76561197960287930; $player = SteamApi::user($steamId)->GetPlayerSummaries()[0]; // Several users $steamIds = [76561197960287930, 76561197968575517] $players = SteamApi::user($steamIds)->GetPlayerSummaries();
Example Output: GetPlayerSummaries
GetFriendList
Returns the friend list of any Steam user, provided his Steam Community profile visibility is set to "Public".
Arguments
Once the list of friends is gathered, if summaries
is not set to false
; it is passed through GetPlayerSummaries. This allows you to get back a collection of Player objects.
Example Output: GetFriendList
GetPlayerBans
Returns the possible bans placed on the provided steam ID(s).
Arguments
Example Output: GetPlayerBans
User Stats
The User Stats WebAPI call is used to get details about a user's gaming.
When instantiating the user stats class, you are required to pass a steamID or Steam community ID.
SteamApi::userStats($steamId)
GetPlayerAchievements
Returns a list of achievements for this user by app ID.
Arguments
Example Output: GetPlayerAchievements
GetGlobalAchievementPercentagesForApp
This method will return a list of all achievements for the specified game and the percentage of all users that have unlocked each achievement.
Arguments
Example Output: GetGlobalAchievementPercentagesForApp
GetUserStatsForGame
Returns a list of achievements for this user by app ID.
Arguments
Example Output: GetUserStatsForGame | GetUserStatsForGame (all)
GetSchemaForGame
Returns a list of game details, including achievements and stats.
Arguments
Example Output: GetSchemaForGame
App
This area will get details for games.
SteamApi::app()
appDetails
This gets all the details for a game. This is most of the information from the store page of a game.
Arguments
Example Output: appDetails
GetAppList
This method will return an array of app objects directly from Steam. It includes the appID and the app name.
Example Output: GetAppList
Package
This method will get details for packages.
SteamApi::package()
packageDetails
This gets all the details for a package. This is most of the information from the store page of a package.
Arguments
Example Output: packageDetails
Item
This method will get user inventory for item.
SteamApi::item()
GetPlayerItems
This gets all the item for a user inventory.
Arguments
⚠️ Now known to supports:440
, 570
, 620
, 730
, 205790
, 221540
, 238460
Example Output: GetPlayerItems
Group
This service is used to get details on a Steam group.
SteamApi::group()
GetGroupSummary
This method will get the details for a group.
Arguments
Example usage
<?php $news = SteamApi::group()->GetGroupSummary('Valve'); ?>
Example Output: GetGroupSummary
Testing the Steam Package
A Steam API key must be provided or most tests will fail.
Run Tests
# Build container
docker-compose build
# Install dependancies
docker-compose run --rm php composer install
# Run tests (assumes apiKey is set in .env file)
docker-compose run --rm php composer test
# Or with the apiKey inline
docker-compose run --rm -e api=YOUR_STEAM_API_KEY php composer test
# With coverage
docker-compose run --rm php composer coverage
# Play around
docker-compose run --rm php bash