ruwork/skolkovo-client

Skolkovo API 客户端

0.1.1 2018-03-17 14:06 UTC

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);