youthweb/php-youthweb-api

Youngweb API 客户端

0.10.0 2021-03-05 12:17 UTC

This package is auto-updated.

Last update: 2024-09-15 19:22:28 UTC


README

Latest Version Software License GPLv3 Build Status codecov

PHP Youthweb API 是一个面向对象包装器,用于 PHP 8.0+ 的 Youthweb API Youthweb API.

安装

Composer:

$ composer require youthweb/php-youthweb-api

文档 / 应用

<?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;
}

更多关于应用的信息可以在 文档 中找到。

测试

phpunit

变更日志

变更日志可以在 这里 找到,并遵循 keepachangelog.com 的建议。

待办事项

  • /{object}/{object_id}/posts 端点上创建帖子
  • 访问 /events 资源
  • 访问 /friends 资源
  • 访问 /{object}/{id}/friends 资源