rumd3x/nightbot-api-lib

A PHP wrapper for Nightbot's Web API.

0.2.0 2021-06-07 00:03 UTC

This package is auto-updated.

Last update: 2024-04-07 06:03:41 UTC


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.