PHPackages                             iprbooks/iprbooks-ebs-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. iprbooks/iprbooks-ebs-sdk

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

iprbooks/iprbooks-ebs-sdk
=========================

IPR Books SDK

1.0.2(1y ago)06072[1 issues](https://github.com/iprbooks/iprbooks-ebs-sdk/issues)[1 PRs](https://github.com/iprbooks/iprbooks-ebs-sdk/pulls)MITPHPPHP 5.3.\* || 5.4.\* || 5.5.\* || 5.6.\* || 7.0.\* || 7.1.\* || 7.2.\* || 7.3.\* || 7.4.\*||8.\*

Since Sep 18Pushed 1y agoCompare

[ Source](https://github.com/iprbooks/iprbooks-ebs-sdk)[ Packagist](https://packagist.org/packages/iprbooks/iprbooks-ebs-sdk)[ RSS](/packages/iprbooks-iprbooks-ebs-sdk/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

ЭБС IPR BOOKS PHP SDK
=====================

[](#эбс-ipr-books-php-sdk)

API ЭБС IPR BOOKS - RESTful API сервер, предназначенный для взаимодействия с информационными системами клиентов - подписчиков [ЭБС IPR BOOKS](http://www.iprbookshop.ru/). Документация по API находится [здесь](https://api.iprbooks.ru/documentation).

Содержание:
===========

[](#содержание)

1. [Установка](#1)
2. [Инициализация клиента API](#2)
3. [Доступ к метаданным](#3)
    - [Получение коллекции книг](#31)
    - [Получение метаданных книги](#32)
    - [Получение коллекции периодических изданий](#33)
    - [Получение метаданных периодического издания](#34)
    - [Получение коллекции выпусков периодического издания](#35)
    - [Получение метаданных выпуска периодического издания](#36)
4. [Управление пользователями](4)
    - [Получение текущего списка пользователей](#41)
    - [Получение пользователя и его метаданных](#42)
    - [Добавление пользователя](#43)
    - [Блокировка пользователя](#44)
    - [Восстановление пользователя](#45)
5. [Бесшовная интеграция](#5)
    - [Генерация ссылки на активацию ключа и авторизацию пользователя](#51)
    - [Создание ссылки для прохождения автоматической регистрации/аутентификации пользователя](#52)

Установка
=========

[](#установка)

Простой и наиболее предпочтительный способ установки SDK - composer.```
 "iprbooks/iprbooks-ebs-sdk" : "dev-master"
```

Другой способ - скачать архив с исходным кодм [master.zip](https://github.com/iprbooks/iprbooks-ebs-sdk/archive/master.zip)или воспользоваться **git clone** и вручную добавить в проект.

```
git clone git@github.com:iprbooks/iprbooks-ebs-sdk.git
```

Инициализация клиента Api
=========================

[](#инициализация-клиента-api)

Для инициализации клиента необходимы следующие параметрыПараметрОписание$clientIdИдентификатор организации-клиента ЭБС IPR BOOKS (получается вместе с ключевой фразой для получения JWT-токена).$tokenВ личном кабинете ЭБС авторизоваться под главным пользователем организации, сгенерировать ключ защиты данных для JWT-авторизации запросов.#### Пример

[](#пример)

```
$clientId = 187;
$token = 'qdEEZBzAr!KV%Dq(WfNm]mNdLzn(m8{8';

$client = new Client($clientId, $token);
```

Доступ к метаданным
===================

[](#доступ-к-метаданным)

Доступ к метаданным позволяет посредством API получать информацию о книгах и периодических изданиях, доступных подписчику ЭБС IPR BOOKS в рамках приобретенной подписки.

### Получение коллекции книг

[](#получение-коллекции-книг)

Список полей для фильтрации с описанием доступен в [BooksCollection.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/collections/BooksCollection.php), атрибуты элемента коллекции (книги) доступны с помощью публичных методов определенных и описанных в [Book.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/Book.php)#### Пример:

[](#пример-1)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание и конфигурация объекта коллекции
$booksCollection = new BooksCollection($client);
$booksCollection->setFilter(BooksCollection::YEAR_LEFT, '2010')
    ->setFilter(BooksCollection::YEAR_RIGHT, '2010')
    ->setLimit(25)
    ->setOffset(0);

// выполнение запроса
$booksCollection->get();

// обращение к элементу коллекции по индексу
$title = $booksCollection->getItem(0)->getTitle();

// перебор элементов коллекции с помощью foreach
foreach ($booksCollection as $book) {
    $title = $book->getTitle();
}
```

### Получение метаданных книги

[](#получение-метаданных-книги)

Атрибуты книги доступны с помощью публичных методов определенных и описанных в [Book.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/Book.php)##### Пример:

[](#пример-2)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание объекта книги
$book = new Book($client);

// получение книги по $id
$book->get(7039);

// обращение к одному из атрибутов книги
$title = $book->getTitle();

// получение содержания
$content = $book->getContent();
$content->get(0)->getPage();
```

### Получение коллекции периодических изданий

[](#получение-коллекции-периодических-изданий)

Список полей для фильтрации с описанием доступен в [JournalCollection.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/collections/JournalCollection.php), атрибуты элемента коллекции (периодического издания) доступны с помощью публичных методов определенных и описанных в [Journal.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/Journal.php)#### Пример:

[](#пример-3)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание и конфигурация объекта коллекции
$journalCollection = new JournalsCollection($client);
$journalCollection->setLimit(25)->setOffset(0);

// выполнение запроса
$journalCollection->get();

// обращение к элементу коллекции по индексу
$title = $journalCollection->getItem(0)->getTitle();

// перебор элементов коллекции с помощью foreach
foreach ($journalCollection as $journal) {
    $title = $journal->getTitle();
}
```

### Получение метаданных периодического издания

[](#получение-метаданных-периодического-издания)

Атрибуты книги доступны с помощью публичных методов определенных и описанных в [Journal.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/Journal.php)#### Пример:

[](#пример-4)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание объекта периодического издания
$journal = new Journal($client);

// получение периодического издания по $id
$journal->get(3181);

// обращение к одному из атрибутов
$title = $journal->getTitle();
```

### Получение коллекции выпусков периодического издания

[](#получение-коллекции-выпусков-периодического-издания)

Список полей для фильтрации с описанием доступен в [IssuesCollection.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/collections/IssuesCollection.php), атрибуты элемента коллекции (выпуска) доступны с помощью публичных методов определенных и описанных в [Issue.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/Issues.php)#### Пример:

[](#пример-5)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание и конфигурация объекта коллекции
$issuesCollection = new IssuesCollection($client);
$issuesCollection->setLimit(25)->setOffset(0);

// выполнение запроса, $id - id периодического издания
$issuesCollection->get(3181);

// обращение к элементу коллекции по индексу
$title = $issuesCollection->getItem(0)->getTitle();

// перебор элементов коллекции с помощью foreach
foreach ($issuesCollection as $issue) {
    $title = $issue->getTitle();
}
```

### Получение метаданных выпуска периодического издания

[](#получение-метаданных-выпуска-периодического-издания)

Атрибуты книги доступны с помощью публичных методов определенных и описанных в [Issue.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/Issue.php)#### Пример:

[](#пример-6)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание объекта выпуска
$issue = new Issue($client);

// получение выпуска по $id
$issue->get(3339);

// обращение к одному из атрибутов
$title = $issue->getTitle();
```

Управление пользователями
=========================

[](#управление-пользователями)

### Получение текущего списка пользователей

[](#получение-текущего-списка-пользователей)

Список полей для фильтрации с описанием доступен в [UsersCollection.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/collections/UsersCollection.php), атрибуты элемента коллекции (пользователя) доступны с помощью публичных методов определенных и описанных в [User.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/User.php)#### Пример:

[](#пример-7)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание и конфигурация объекта коллекции
$usersCollection = new UsersCollection($client);
$usersCollection->setLimit(25)->setOffset(0);

// выполнение запроса, $id - id периодического издания
$usersCollection->get();

// обращение к элементу коллекции по индексу
$email = $usersCollection->getItem(0)->getEmail();

// перебор элементов коллекции с помощью foreach
foreach ($usersCollection as $user) {
    $email = $user->getEmail();
}
```

### Получение пользователя и его метаданных

[](#получение-пользователя-и-его-метаданных)

#### Пример:

[](#пример-8)

```
// инициализация клиента
$client = new Client($clientId, $token);

// создание объекта книги
$user = new User($client);

// получение пользователя по $id
$user->get(187);

// обращение к одному из атрибутов
$email = $user->getEmail();
```

### Добавление пользователя

[](#добавление-пользователя)

Обязательно должны быть переданы следующие параметры:- $email — email-адрес пользователя, длина не более 255 символов
- $fullname — полное имя пользователя
- $password — пароль пользователя

Необязательные параметры:

- $userType — тип пользователя. Список возможных значений доступен в [User.php](https://github.com/iprbooks/iprbooks-ebs-sdk/blob/master/src/models/User.php)

#### Пример:

[](#пример-9)

```
// инициализация клиента
$client = new Client($clientId, $token);

$email = 'newuser@mail.ru';
$fullname = 'newuser@mail.ru';
$password = '********';
$userType = User::STUDENT;

$manager = new UserManager($client);
$user = $manager->registerNewUser($email, $fullname, $password, $userType);
$userId = $user->getId();
```

### Блокировка пользователя

[](#блокировка-пользователя)

Блокировка пользователя организации по id#### Пример:

[](#пример-10)

```
// инициализация клиента
$client = new Client($clientId, $token);

$manager = new UserManager($client);
$manager->deleteUser(187);
```

### Восстановление пользователя

[](#восстановление-пользователя)

Восстановление пользователя организации по id#### Пример:

[](#пример-11)

```
// инициализация клиента
$client = new Client($clientId, $token);

$manager = new UserManager($client);
$manager->restoreUser(187);
```

Бесшовная интеграция
====================

[](#бесшовная-интеграция)

### Генерация ссылки на активацию ключа и авторизацию пользователя

[](#генерация-ссылки-на-активацию-ключа-и-авторизацию-пользователя)

Обязательные параметры:

- $userId - id пользователя организации

Необязательные параметры:

- $publicationId — проверяется существует ли данная публикация, если да, произойдет автопереход на страницу публикации

#### Пример:

[](#пример-12)

```
// инициализация клиента
$client = new Client($clientId, $token);

// получение id пользователя организации
$usersCollection = new UsersCollection($client);
$usersCollection->get();
$userId = $usersCollection->getItem(0)->getId();

// получение ссылки
$integrationManager = new IntegrationManager($client);
$url = $integrationManager->generateToken($userId);
```

### Создание ссылки для прохождения автоматической регистрации/аутентификации пользователя

[](#создание-ссылки-для-прохождения-автоматической-регистрацииаутентификации-пользователя)

Обязательные параметры:

- $email — email пользователя, если он уже зарегистрирован, произойдет автоматическая авторизация данного пользователя
- $fullname - полное имя пользователя
- $userType - тип пользователя:
    - 1 - студенты
    - 2 - аспиранты
    - 3 - преподаватели
    - 4 - нетипизированный(по умолчанию)
- $publicationId - если передано, проверяется существует ли данная публикация, если да, произойдет автопереход на страницу публикации
- $openMethod - работает, если передан publication\_id, значения true/false. Если параметр передан, проверит доступность издания, проверит возможность загрузки в iframe, если все проверки успешно пройдены, откроет ридер с загруженной публикацией.

#### Пример:

[](#пример-13)

```
// инициализация клиента
$client = new Client($clientId, $token);

$integrationManager = new IntegrationManager($client);

// данные пользователя
$email = 'test@test.com';
$fullname = 'testname';
$userType = USER::STUDENT;
$publicationId = 123;
$isFrameOpen = true;

//получение ссылки
$url = $integrationManager->generateAutoAuthUrl($email, $fullname, $userType, $publicationId, $isFrameOpen);
```

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance42

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 72.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2011 days

Total

2

Last Release

463d ago

PHP version history (2 changes)1.0.1PHP 5.3.\* || 5.4.\* || 5.5.\* || 5.6.\* || 7.0.\* || 7.1.\* || 7.2.\*

1.0.2PHP 5.3.\* || 5.4.\* || 5.5.\* || 5.6.\* || 7.0.\* || 7.1.\* || 7.2.\* || 7.3.\* || 7.4.\*||8.\*

### Community

Maintainers

![](https://www.gravatar.com/avatar/b39c508cc57ab6cbc329809a1f1bc230357c01416f71cc70c15c6b59ea8d7cdf?d=identicon)[andrey.cherkasov](/maintainers/andrey.cherkasov)

---

Top Contributors

[![cherkasovas](https://avatars.githubusercontent.com/u/2529779?v=4)](https://github.com/cherkasovas "cherkasovas (8 commits)")[![AmnesiaZero](https://avatars.githubusercontent.com/u/90193990?v=4)](https://github.com/AmnesiaZero "AmnesiaZero (2 commits)")[![iprbooks](https://avatars.githubusercontent.com/u/44605122?v=4)](https://github.com/iprbooks "iprbooks (1 commits)")

### Embed Badge

![Health badge](/badges/iprbooks-iprbooks-ebs-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/iprbooks-iprbooks-ebs-sdk/health.svg)](https://phpackages.com/packages/iprbooks-iprbooks-ebs-sdk)
```

###  Alternatives

[yidas/client-ip

Get client IP with safe and coincident way from server even behind Proxy or Load-Balancer

2387.3k](/packages/yidas-client-ip)[sculpin/blog-skeleton

A Skeleton for a Sculpin Based Blog

823.0k](/packages/sculpin-blog-skeleton)[andychukse/laravel-pricing-plans

A package provide pricing plans for Laravel.

112.5k](/packages/andychukse-laravel-pricing-plans)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
