bigpino67 / oauth2-xblive
XBOX Live OAuth 2.0 Client Provider for The PHP League OAuth2-Client
1.0.0
2021-01-29 17:10 UTC
Requires
- php: ^5.6|^7.0|^8.0
- league/oauth2-client: ~2.0
This package is not auto-updated.
Last update: 2024-05-04 03:51:52 UTC
README
This package provides Microsoft Live and XBOX Live OAuth 2.0 support for the PHP League's OAuth 2.0 Client.
Installation
To install, use composer:
composer require bigpino67/oauth2-xblive dev-master
Authorization Code Flow
require_once __DIR__ . '/vendor/autoload.php'; use BigPino67\OAuth2\XBLive\Client\Provider; use BigPino67\OAuth2\XBLive\Client\Provider\Enum\XBLivePlatformEnum; use BigPino67\OAuth2\XBLive\Client\Provider\Enum\XboxOneTitleEnum; $provider = new BigPino67\OAuth2\XBLive\Client\Provider\XBLive([ 'clientId' => '{YOUR_CLIENT_ID}', 'clientSecret' => '{YOUR_CLIENT_SECRET}', 'redirectUri' => '{YOUR_LOGIN_REDIRECT_URI}', 'logoutRedirectUri' => '{YOUR_LOGOUT_REDIRECT_URI}', ]); if(isset($_POST['code']) && isset($_POST['state'])) { if($_POST['state'] == $provider->getState()) { $msaToken = $provider->GetAccessToken('authorization_code', [ 'scope' => $provider->scope, 'code' => $_POST['code'] ]); $xasuToken = $provider->getXasuToken($msaToken); $xstsToken = $provider->getXstsToken($xasuToken); $profilesProvider = new Provider\Profiles\ProfilesProvider($xstsToken); $profile = $profilesProvider->getLoggedUserProfile(); $achivementsProvider = new Provider\Achievements\AchievementsProvider($xstsToken); $sotAchievements = $achivementsProvider->getAchievements(XboxOneTitleEnum::SeaOfThieves); echo "<pre>"; print_r($sotAchievements); echo "<pre>"; } else { echo 'Invalid state'; } } else { echo '<a href="'.$provider->getBaseAuthorizationUrl().'">Login</a>'; }