ruwork / skolkovo-client
Skolkovo API 客户端
0.1.1
2018-03-17 14:06 UTC
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-09-12 07:15:10 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 客户端 或 Socket 客户端。
使用方法
初始化客户端
<?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);