iprbooks / iprbooks-ebs-sdk
IPR Books SDK
1.0.1
2019-09-18 07:39 UTC
Requires
- php: 5.3.* || 5.4.* || 5.5.* || 5.6.* || 7.0.* || 7.1.* || 7.2.*
- ext-curl: *
- ext-json: *
Requires (Dev)
- firebase/php-jwt: 5.0.0
This package is not auto-updated.
Last update: 2024-09-27 17:13:55 UTC
README
API ЭБС IPR BOOKS - RESTful API服务器,用于与客户订阅的信息系统进行交互 - ЭБС IPR BOOKS。API文档位于此处。
内容
安装
安装SDK最简单、最推荐的方式是使用composer。"iprbooks/iprbooks-ebs-sdk" : "dev-master"
另一种方式是下载源代码的存档 master.zip 或使用 git clone 并手动将其添加到项目中。
git clone git@github.com:iprbooks/iprbooks-ebs-sdk.git
初始化API客户端
初始化客户端需要以下参数示例
$clientId = 187; $token = 'qdEEZBzAr!KV%Dq(WfNm]mNdLzn(m8{8'; $client = new Client($clientId, $token);
访问元数据
访问元数据允许通过API获取有关书籍和期刊的信息,这些信息是订阅者通过购买订阅获得的。获取书籍集合
可用于过滤的字段列表及其描述可在BooksCollection.php中找到,集合(书籍)元素的属性可通过在Book.php中定义和描述的公共方法访问示例
// инициализация клиента $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中定义和描述的公共方法访问示例
// инициализация клиента $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中找到,集合(期刊)元素的属性可通过在Journal.php中定义和描述的公共方法访问示例
// инициализация клиента $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中定义和描述的公共方法访问示例
// инициализация клиента $client = new Client($clientId, $token); // создание объекта периодического издания $journal = new Journal($client); // получение периодического издания по $id $journal->get(3181); // обращение к одному из атрибутов $title = $journal->getTitle();
获取期刊发行集合
可用于过滤的字段及其描述可在IssuesCollection.php中找到,集合(发行)元素的属性可通过定义和描述在Issue.php中定义的公共方法访问。示例
// инициализация клиента $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中的公共方法访问。示例
// инициализация клиента $client = new Client($clientId, $token); // создание объекта выпуска $issue = new Issue($client); // получение выпуска по $id $issue->get(3339); // обращение к одному из атрибутов $title = $issue->getTitle();
用户管理
获取当前用户列表
可用于过滤的字段及其描述可在UsersCollection.php中找到,集合(用户)元素的属性可通过定义和描述在User.php中的公共方法访问。示例
// инициализация клиента $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(); }
获取用户及其元数据
示例
// инициализация клиента $client = new Client($clientId, $token); // создание объекта книги $user = new User($client); // получение пользователя по $id $user->get(187); // обращение к одному из атрибутов $email = $user->getEmail();
添加用户
必须传递以下参数- $email — 用户电子邮件地址,长度不超过255个字符
- $fullname — 用户全名
- $password — 用户密码
可选参数
- $userType — 用户类型。可能的值列表可在User.php中找到
示例
// инициализация клиента $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锁定组织用户示例
// инициализация клиента $client = new Client($clientId, $token); $manager = new UserManager($client); $manager->deleteUser(187);
恢复用户
按id恢复组织用户示例
// инициализация клиента $client = new Client($clientId, $token); $manager = new UserManager($client); $manager->restoreUser(187);
无缝集成
生成激活密钥链接和用户授权
必须参数
- $userId - 组织用户id
可选参数
- $publicationId — 检查是否存在该出版物,如果存在,将自动跳转到出版物页面
示例
// инициализация клиента $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 — 用户电子邮件地址,如果已注册,将自动授权该用户
- $fullname - 用户全名
- $userType - 用户类型
- 1 - 学生
- 2 - 研究生
- 3 - 教师
- 4 - 未分类(默认)
- $publicationId - 如果传递,检查是否存在该出版物,如果存在,将自动跳转到出版物页面
- $openMethod - 如果传递publication_id,值为true/false。如果参数传递,将检查出版物的可用性,检查是否可以在iframe中加载,如果所有检查都成功通过,将打开包含已加载出版物的阅读器。
示例
// инициализация клиента $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);