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

262b684 Β· Mar 15, 2023
Feb 21, 2023
Mar 8, 2023
Mar 15, 2023
Mar 15, 2023
Feb 17, 2023
Feb 17, 2023
Feb 21, 2023
Feb 21, 2023
Mar 8, 2023
Oct 18, 2016
Mar 8, 2023
Feb 24, 2023
Mar 5, 2021

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