ruwork / skolkovo-client
Skolkovo API Client
Installs: 5 280
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 0
Open Issues: 0
Requires
- php: ^7.1
- ruvents/abstract-api-client: ^0.19.0
Requires (Dev)
- guzzlehttp/psr7: ^1.0
- php-http/curl-client: ^1.7
This package is auto-updated.
Last update: 2024-10-12 07:30:57 UTC
README
Установка
$ composer require ruwork/skolkovo-client guzzlehttp/psr7 php-http/guzzle6-adapter
Вместо guzzlehttp/psr7
вы можете использовать любую имплементацию PSR-7 сообщений, например, zendframework/zend-diactoros.
Вместо php-http/guzzle6-adapter
вы можете использовать любую имплементацию HTTP-клиента, например, cURL client или Socket client.
Использование
Инициализация клиента
<?php declare(strict_types=1); use Ruwork\SkolkovoClient\SkolkovoClient; use Ruwork\SkolkovoClient\TokenStorage\FileTokenStorage; use Ruwork\SkolkovoClient\Definition\SkolkovoDefinition; $tokenStorage = new FileTokenStorage('path/to/token.json'); $client = new SkolkovoClient([ 'client_id' => 'client_id', 'client_secret' => 'client_secret', ], [], new SkolkovoDefinition($tokenStorage));
Получение ссылки для OAuth
<?php declare(strict_types=1); $url = $client->generateLoginUrl('your/redirect/url');
Получение пользователя после авторизации OAuth
<?php declare(strict_types=1); use Ruwork\SkolkovoClient\TokenStorage\InstantTokenStorage; $code = $_GET['code']; $token = $client->oauthTokenCode() ->setCode($code) ->setRedirectUri('your/redirect/url') ->getResult(); $apiData = $client->info() ->setTokenStorage(new InstantTokenStorage($token)) ->getResult(); var_dump($apiData['AccessingUser']);
Отправка свободного запроса
<?php declare(strict_types=1); use Ruwork\SkolkovoClient\TokenStorage\InstantTokenStorage; $client->request([ 'method' => 'GET', // адрес на стороне сервиса, обязательный параметр 'endpoint' => '/oauth/token', // добавлять заголовки авторизации? 'authenticate' => true, 'data' => [ 'key' => 'value', ], 'headers' => [ 'header' => 'value', ], ]);
Генерация токена по имени пользователя и паролю
<?php declare(strict_types=1); $token = $client ->oauthTokenPassword() ->setUsername('username') ->setPassword('password') ->getResult(); $tokenStorage->set($token);