youthweb / php-youthweb-api
Youthweb API client
0.10.0
2021-03-05 12:17 UTC
Requires
- php: ^7.4 || ^8.0
- art4/json-api-client: ^1.0
- cache/void-adapter: ^1.1
- guzzlehttp/guzzle: ^7.2
- youthweb/oauth2-youthweb: ^1.2
Requires (Dev)
- phpunit/phpunit: ^9
README
PHP Youthweb API ist ein objektorientierter Wrapper in PHP 8.0+ für die Youthweb API.
Installation
$ composer require youthweb/php-youthweb-api
Dokumentation / Anwendung
<?php error_reporting(E_ALL); ini_set('display_errors', 1); // Config $client_id = 'CB91ZullPa4ync4l'; $client_secret = 'YC7CXuDXX9pF5SeTKs9enkoPjbV01QIs'; $redirect_url = 'http://localhost/php-youthweb-api/login-button.php'; $scope = ['user:read']; // See http://developer.youthweb.net/api_general_scopes.html //A resource owner identifier to separate the caches $resourceOwnerId = 'a24d4387-f4de-4318-929a-57d475162fd4'; // or '12345' or 'user@example.com' require 'vendor/autoload.php'; $config = Configuration::create( $client_id, $client_secret, $redirect_url, $scope, $resourceOwnerId, ); // optional: set other options, providers, etc $config->setApiVersion('0.20'); $config->setCacheItemPool(new \Symfony\Component\Cache\Adapter\FilesystemAdapter()); $config->setHttpClient(new \GuzzleHttp\Client()); $client = \Youthweb\Api\Client::fromConfig($config); echo '<h1>Mit Youthweb einloggen</h1>'; echo '<form method="get" action="'.$redirect_url.'"> <input name="go" value="Login" type="submit" /> </form>'; if ( isset($_GET['go']) ) { try { // (1) Try access the API $me = $client->getResource('users')->showMe(); } catch (\Youthweb\Api\Exception\UnauthorizedException $th) { // (2) We need to ask for permission first header('Location: '.$th->getAuthorizationUrl()); exit; } // (4) We have access to the API \o/ printf('<p>Hallo %s %s!</p>', $me->get('data.attributes.first_name'), $me->get('data.attributes.last_name')); printf('<p>Deine Email-Adresse: %s', $me->get('data.attributes.email')); } elseif ( isset($_GET['code']) ) { // (3) Here we are if we have a permission $client->authorize('authorization_code', [ 'code' => $_GET['code'], 'state' => $_GET['state'], ]); header('Location: '.$redirect_url.'?go=Login'); exit; }
Weitere Informationen zur Anwendung gibt es in der Dokumentation.
Tests
phpunit
Changelog
Der Changelog ist hier zu finden und folgt den Empfehlungen von keepachangelog.com.
Todo
- Erstellen von Posts auf Endpoint
/{object}/{object_id}/posts
- Zugriff auf
/events
Resourcen - Zugriff auf
/friends
Resourcen - Zugriff auf
/{object}/{id}/friends
Resourcen