Twitch provider for league/oauth2-client
This is a package to integrate twitch.tv authentication with the OAuth2 client library by
The League of Extraordinary Packages., (*1)
To install, use composer:, (*2)
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:, (*3)
$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., (*4)
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., (*5)
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, (*6)
cd test/
php -S localhost:8000
Now, navigating to http://localhost:8000 should present an OAuth flow and then dump your user information., (*7)