1. Go to this page and download the library: Download oliverschloebe/oauth2-rbtv library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
oliverschloebe / oauth2-rbtv example snippets
//session_start(); // optional, depending on your used data store
$rbtvProvider = new \OliverSchloebe\OAuth2\Client\Provider\Rbtv([
'clientId' => 'yourId', // The client ID of your RBTV app
'clientSecret' => 'yourSecret', // The client password of your RBTV app
'redirectUri' => 'yourRedirectUri' // The return URL you specified for your app on RBTV
]);
// Get authorization code
if (!isset($_GET['code'])) {
// Options are optional, scope defaults to ['user.info']
$options = [ 'scope' => ['user.info', 'user.email.read', 'user.notification.list', 'user.notification.manage', 'user.subscription.manage', 'user.subscriptions.read', 'user.rbtvevent.read', 'user.rbtvevent.manage'] ];
// Get authorization URL
$authorizationUrl = $rbtvProvider->getAuthorizationUrl($options);
// Get state and store it to the session
$_SESSION['oauth2state'] = $rbtvProvider->getState();
// Redirect user to authorization URL
header('Location: ' . $authorizationUrl);
exit;
} elseif (empty($_GET['state']) || (isset($_SESSION['oauth2state']) && $_GET['state'] !== $_SESSION['oauth2state'])) { // Check for errors
if (isset($_SESSION['oauth2state'])) {
unset($_SESSION['oauth2state']);
}
exit('Invalid state');
} else {
// Get access token
try {
$accessToken = $rbtvProvider->getAccessToken(
'authorization_code',
[
'code' => $_GET['code']
]
);
// We have an access token, which we may use in authenticated
// requests against the RBTV API.
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 />";
} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) {
exit($e->getMessage());
}
// Get resource owner
try {
$resourceOwner = $rbtvProvider->getResourceOwner($accessToken);
} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) {
exit($e->getMessage());
}
// Store the results to session or whatever
$_SESSION['accessToken'] = $accessToken;
$_SESSION['resourceOwner'] = $resourceOwner;
var_dump(
$resourceOwner->getId(),
$resourceOwner->getName(),
$resourceOwner->getEmail(),
$resourceOwner->getAttribute('email'), // allows dot notation, e.g. $resourceOwner->getAttribute('group.field')
$resourceOwner->toArray()
);
}
$rbtvProvider = new \OliverSchloebe\OAuth2\Client\Provider\Rbtv([
'clientId' => 'yourId', // The client ID of your RBTV app
'clientSecret' => 'yourSecret', // The client password of your RBTV app
'redirectUri' => 'yourRedirectUri' // The return URL you specified for your app on RBTV
]);
$existingAccessToken = getAccessTokenFromYourDataStore();
if ($existingAccessToken->hasExpired()) {
$newAccessToken = $rbtvProvider->getAccessToken('refresh_token', [
'refresh_token' => $existingAccessToken->getRefreshToken()
]);
// Purge old access token and store new access token to your data store.
}
$subscriptionsRequest = $rbtvProvider->getAuthenticatedRequest(
'GET',
'https://api.rocketbeans.tv/v1/subscription/mysubscriptions', // see https://github.com/rocketbeans/rbtv-apidoc#list-all-subscriptions
$accessToken
);
// Get parsed response of current authenticated user's subscriptions; returns array|mixed
$mySubscriptions = $rbtvProvider->getParsedResponse($subscriptionsRequest);
var_dump($mySubscriptions);
$blogParams = [ 'limit' => 10 ];
$blogRequest = $rbtvProvider->getRequest(
'GET',
'https://api.rocketbeans.tv/v1/blog/preview/all?' . http_build_query($blogParams)
);
// Get parsed response of non-authenticated API request; returns array|mixed
$blogPosts = $rbtvProvider->getParsedResponse($blogRequest);
var_dump($blogPosts);
$rbtvProvider = new \OliverSchloebe\OAuth2\Client\Provider\Rbtv([
'clientId' => 'yourId', // The client ID of your RBTV app
'clientSecret' => 'yourSecret', // The client password of your RBTV app
'redirectUri' => 'yourRedirectUri' // The return URL you specified for your app on RBTV
'proxy' => '192.168.0.1:8888',
'verify' => false
]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.