rumd3x / nightbot-api-lib
A PHP wrapper for Nightbot's Web API.
0.2.0
2021-06-07 00:03 UTC
Requires
- php: >=7.0
- guzzlehttp/guzzle: ^6.3
- league/oauth2-client: ^2.6
- nesbot/carbon: ^2.45
- tightenco/collect: ^5.8
README
A PHP wrapper for Nightbot's Web API.
Install
composer require rumd3x/nightbot-api-lib
Examples
Authorization Code Flow
use Rumd3x\NightbotAPI\NightbotAPI; use Rumd3x\NightbotAPI\NightbotProvider; $provider = new NightbotProvider('CLIENT_ID','CLIENT_SECRET','REDIRECT_URL'); if (!isset($_GET['code'])) { $options = ['scope' => [ 'channel_send', ]]; header('Location: ' . $provider->getAuthorizationUrl($options)); die; } else { $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'], ]); $api = new NightbotAPI($accessToken); $me = $api->me(); print_r($me); echo 'Access Token: ' . $accessToken->getToken() . "<br>"; echo 'Refresh Token: ' . $accessToken->getRefreshToken() . "<br>"; echo 'Expired in: ' . $accessToken->getExpires() . "<br>"; echo 'Already expired? ' . ($accessToken->hasExpired() ? 'expired' : 'not expired') . "<br>"; // Store Refresh Token for Future use. }
Refreshing Tokens
use Rumd3x\NightbotAPI\NightbotAPI; use Rumd3x\NightbotAPI\NightbotProvider; $provider = new NightbotProvider('CLIENT_ID','CLIENT_SECRET','REDIRECT_URL'); $refreshToken = getAccessTokenFromYourDataStore(); $newAccessToken = $provider->getAccessToken('refresh_token', [ 'refresh_token' => $refreshToken, ]); $api = new NightbotAPI($newAccessToken); $api->sendChatMessage('Hello Gamers!'); echo 'Access Token: ' . $newAccessToken->getToken() . "<br>"; echo 'Refresh Token: ' . $newAccessToken->getRefreshToken() . "<br>"; echo 'Expired in: ' . $newAccessToken->getExpires() . "<br>"; echo 'Already expired? ' . ($newAccessToken->hasExpired() ? 'expired' : 'not expired') . "<br>"; // Store New Refresh Token for Future use.