Skip to content

🔌 PHP Youthweb API is an object-oriented wrapper for PHP of the Youthweb API.

License

Notifications You must be signed in to change notification settings

youthweb/php-youthweb-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Youthweb API

Latest Version Software License GPLv3 Build Status codecov

PHP Youthweb API ist ein objektorientierter Wrapper in PHP 8.0+ für die Youthweb API.

Installation

Composer:

$ 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 '[email protected]'

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

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

About

🔌 PHP Youthweb API is an object-oriented wrapper for PHP of the Youthweb API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages