1. Go to this page and download the library: Download runet-id/api-client library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
runet-id / api-client example snippets
use Http\Discovery\MessageFactoryDiscovery;
use RunetId\Client\RunetIdClientFactory;
use RunetId\Client\Result\SuccessResult;
$factory = new RunetIdClientFactory();
$client = $factory->create('key', 'secret');
// Запрос с использованием встроенных подсказок по endpoint-ам RUNET-ID.
$user = $client->userGet()
// метод setLanguage доступен во всех endpoint-ах
->setLanguage('en')
->setRunetId(1)
->getResult();
// Метод getResult возвращает размеченный phpDoc-свойствами класс.
$runetId = $user->RunetId;
$company = $user->Work->Company->Name;
// Чтобы получить исходный массив, используйте метод getRawResult.
$arrayUser = $client->userGet()
->setRunetId(1)
->getRawResult();
// Endpoint-ы можно использовать повторно.
$roleChanger = $client
->eventChangeRole()
->setRoleId(1);
$success1 = $roleChanger
->setRunetId(1)
->getResult()
->Success;
$success2 = $roleChanger
->setRunetId(2)
->getResult()
->Success;
// Данные можно передавать в свободной форме.
$company = $client
->companyGet()
// Метод setQueryData() перезаписывает все параметры.
->setQueryData([
'CompanyId' => 1,
])
// Метод addQueryData() добавляет параметры, используя array_merge().
->addQueryData([
'Language' => 'en',
])
// Метод setQueryValue() устанавливает значение конкретного параметра,
// перезаписывая предыдущее значение.
->setQueryValue('EventId', 123)
->getResult();
// Для POST запросов также доступны аналогичные методы (add|set)FormData() и setFormValue().
$client
->userEdit()
->setFormData([
'RunetId' => 1,
'Email' => '[email protected]',
])
->addFormData([
'FirstName' => 'Имя',
])
->setFormValue('LastName', 'Фамилия')
->getResult();
// Чтобы сконструировать запрос от начала до конца,
// можно воспользоваться методом custom().
/** @var SuccessResult $result */
$result = $client
->custom()
->setMethod('PUT')
->setEndpoint('/some/put/endpoint')
->setLanguage('en')
->setQueryValue('param', 'value')
->setFormData([
'FormParam' => 'FormParamValue',
])
->setClass(SuccessResult::class)
->getResult();
// Отправка свободного Psr\Http\Message\RequestInterface осуществляется через метод request().
// Schema, host и заголовки аутентификации будут подставлены автоматически.
$request = MessageFactoryDiscovery::find()
->createRequest('GET', '/user/get?RunetId=1');
$resultArray = $client->request($request);
// При условии наличия 900 регистраций на мероприятии и серверном ограничении в 200 сущностей:
$endpoint = $client->eventUsers();
iterator_count($endpoint->getResult()->Users); // 900 (5 запросов),
iterator_count($endpoint->setMaxResults(340)->getResult()->Users); // 340 (2 запроса).
try {
$client->userGet()
->setRunetId(1)
->getResult();
} catch (RunetId\Client\Exception\RunetIdException $exception) {
$errorMessage = $exception->getMessage();
$errorCode = $exception->getCode();
// Метод getData() возвращает полный массив данных из ответа API.
$data = $exception->getData();
}
$result = $client
->userGet()
->setRunetId(1)
->getResult();
// Вы можете обращаться к неразмеченным свойствам.
$result->SomeNewProperty;
// Для простоты при запросе несуществующих в исходном массиве данных
// объект не будет генерировать исключения. Вместо этого будет возвращен null.
// Это может быть полезно при обращении к свойствам,
// которые могут быть не включены в выдачу вследствие недостаточных прав.
$result->SomeLimitedAccessProperty; // null
// Чтобы проверить существование свойства в исходном массиве, используйте exists().
$hasStatus = $result->exists('Status');
// Результат является обходимым.
foreach ($result as $key => $value) {
printf("%s: %s\n", $key, $value);
}
use RunetId\Client\RunetIdClientFactory;
// Установка параметров query по умолчанию.
$factory = new RunetIdClientFactory();
$client = $factory->create(
'key',
'secret',
RunetIdClientFactory::API_URI.'?Language=en&EventId=123'
);
// Использование другого базового url.
$factory = new RunetIdClientFactory();
$client = $factory->create(
'key',
'secret',
'http://localhost:8000/endpoint-prefix/?Language=en'
);
use Http\Client\Common\Plugin\LoggerPlugin;
use RunetId\Client\RunetIdClientFactory;
$loggerPlugin = new LoggerPlugin(
// Здесь может быть любая имплементация Psr\Log\LoggerInterface.
new Monolog\Logger('http')
);
$factory = new RunetIdClientFactory();
$client = $factory->create(
'key',
'secret',
null,
null,
// Http\Client\Common\Plugin[]
[$loggerPlugin]
);
$httpClient = new Http\Adapter\Guzzle6\Client();
$uriFactory = new Http\Message\UriFactory\GuzzleUriFactory();
$requestFactory = new Http\Message\MessageFactory\GuzzleMessageFactory();
$streamFactory = new Http\Message\StreamFactory\GuzzleStreamFactory();
$runetIdFactory = new RunetId\Client\RunetIdClientFactory($httpClient, $uriFactory, $requestFactory, $streamFactory);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.