depotwarehouse / oauth2-twitch
A Twitch provider for league/oauth2-client
Installs: 64 753
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 6
Forks: 12
Open Issues: 7
Requires
- league/oauth2-client: ^2.4
This package is not auto-updated.
Last update: 2024-12-14 14:28:34 UTC
README
This is a package to integrate twitch.tv authentication with the OAuth2 client library by The League of Extraordinary Packages.
To install, use composer:
composer require depotwarehouse/oauth2-twitch
Usage is the same as the league's OAuth client, using \Depotwarehouse\OAuth2\Client\Twitch\Provider\Twitch
as the provider.
For example:
$provider = new \Depotwarehouse\OAuth2\Client\Twitch\Provider\Twitch([ 'clientId' => "YOUR_CLIENT_ID", 'clientSecret' => "YOUR_CLIENT_SECRET", 'redirectUri' => "http://your-redirect-uri" ]);
You can also optionally add a scopes
key to the array passed to the constructor. The available scopes are documented
on the Twitch API Documentation.
Note: The provider uses the "user_read" scope by default. If you pass other scopes, and want the ->getResourceOwner() method to work, you will need to ensure the "user_read" scope is used.
if (isset($_GET['code']) && $_GET['code']) { $token = $this->provider->getAccessToken("authorization_code", [ 'code' => $_GET['code'] ]); // Returns an instance of Depotwarehouse\OAuth2\Client\Twitch\Entity\TwitchUser $user = $this->provider->getResourceOwner($token); $user->getDisplayName(); $user->getId() $user->getType(); $user->getBio(); $user->getEmail(); $user->getPartnered();
Testing
You can quickly test that the package works by adding client information (from your twitch.tv account) to config/config.php
and then starting up a php server
cd test/
php -S localhost:8000
Now, navigating to http://localhost:8000
should present an OAuth flow and then dump your user information.