В выбранной библиотеке создаётся новый читательский билет. При этом:
- Если указан читательский email, то на него отправляется логин/пароль для доступа.
- Если указан только номер мобильного — то доступ отправляется в виде СМС.
Также есть сценарии, когда указанный e-mail/телефон уже привязаны к другому пользователю ЛитРес. В этом случае читательский билет пытается автоматически присоединиться к ранее созданному аккаунту.
ID функции
w_biblio_reader_create
Кто может вызывать
Авторизованное приложение, имеющее разрешение на работу с библиотечным API <ссылка TODO>
Принимаемые параметры
libhouse* – ID библиотеки, в которой создаётся новый читательский билет. Этот ID выдаётся менеджером ЛитРес при получении доступа к API или получается через запрос <TODO>, если вы являетесь оператором группы библиотек;
name* – имя и фамилия читателя (строка 255 символов; более длинные строки будут обрезаны);
birth_date* – дата рождения в ISO-формате «1999-12-21». Дата рождения должна быть меньше текущей даты как минимум на 3 года.
mail – e-mail читателя (example@mail.com). Параметр является обязательным*, если не передан phone;
phone – номер мобильного телефона читателя с кодом страны. Пример: «79161234567» или «380341234567». Важно: указывайте российские телефоны именно с префиксом «7», а не «8». Параметр является обязательным*, если не передан mail;
groups – массив с названием библиотечных групп, в которые нужно поместить читателя. Примеры названия групп: «Филиал №94», «7Б класс». Название каждой группы — строка до 20 символов без знака запятых. Если в строке будут переданы запятые — они будут автоматически удалены. Если длина будет более 20 символов — лишние будут обрезаны.
Примечание для ЛитРес-perl-разработчиков
При успешном создании читательского билета через АПИ — в БД в поле biblio_parents.reg_type прописываем новый тип «4». Описание других типов регистрации юзеров см в: https://hub.litres.ru/pages/ticket/?id=80726
Возвращаемые значения
lib_card* – номер созданного читательского билета;
login* – логин читателя. Логин может отличаться от номера читательского билета (не актуально для школьных библиотек);
password – пароль читателя. Не сохраняйте пароль на своей стороне! Это небезопасно и не целесообразно, т.к. он может быстро устареть. Пароль может отсутствовать среди возвращаемых параметров. Это означает, что читательский билет был успешно присоединён к аккаунту с логином login;
name* – имя и фамилия читателя;
birth_date* – дата рождения в ISO-формате «1999-12-21»;
phone – номер мобильного телефона читателя с кодом страны. Пример: «79161234567» или «380341234567»;
mail – e-mail читателя;
groups – массив с названиями библиотечных групп, в которых числится читатель. Например, группами могут быть филиалы, классы и пр. Если читатель не числится ни в одной группе — массив будет пустым.
is_hybrid* – есть ли у читателя возможность совершать розничные покупки на ЛитРес за собственные деньги (не актуально для школьных библиотек);
is_merged* – был ли читательский билет присоединён к ранее созданному аккаунту в момент создания (не актуально для школьных библиотек). «0» — не был присоединён. «1» — читательский билет был успешно присоединён к аккаунту с логином login*. Если читатель забыл пароль от этого аккаунта, он может самостоятельно его восстановить в форме авторизации на сайте www.litres.ru.
create_date* – дата и время создания читательского билета в в ISO-формате «2013-11-07T16:21:02+03:00».
Возможные ошибки
error_code | error_message | Описание |
---|---|---|
101190 | Некорректный libhouse | Либо отсутствует параметр libhouse, либо переданный ID библиотеки не существует, либо у вас нет прав для работы с читателями этой библиотекой. |
101191 | Некорректный name | Параметр name либо отсутствует, либо содержит пустую строку. |
101192 | Некорректный birth_date | Либо параметр birth_date отсутствует, либо он не соответсвует ISO-формату «ГГГГ-ММ-ДД», либо указанная дата больше чем «сегодня минус три года». |
101193 | Отсутствует email и телефон | В запросе обязательно должен быть передан хотя бы один из параметров: mail или phone. |
101194 | Некорректный mail | Параметр mail имеет некорректный формат. |
101195 | Некорректный phone | Параметр phone имеет некорректный формат или не является мобильным номером телефона. |
101196 | Некорректный groups | Параметр groups не массив |
101197 | Невозможно присоединить читательский билет к указанному email | Переданный mail уже привязан к аккаунту ЛитРес, к которому невозможно присоединять другие аккаунты (например: школьники, администраторы и пр.). Либо не передавайте этот конакт в запросе, либо укажите другой контакт. |
101198 | Невозможно присоединить читательский билет к указанному телефону | Переданный phone уже привязан к аккаунту ЛитРес, к которому невозможно присоединять другие аккаунты (например: школьники, администраторы и пр.). Либо не передавайте этот конакт в запросе, либо укажите другой контакт. |
101199 | Дубль читателя из вашей библиотеки | Читатель с таким email (или телефоном) уже зарегистрирован в вашей библиотеке. |
101200 | Внутренняя ошибка - попробуйте позже | Не возможно созать пользователя |
101202 | Внутренняя ошибка - попробуйте позже | Не возможно прописать новому юзеру логин |
Так же могут возникнуть ошибки общие для всех методов.
Пример запроса на сервер
{ "app": "1", "time": "2019-04-17T16:48:58+03:00", "sha": "b79d8e9993d20da6abe78838d3c7fbf640a4c52956569bef3c685d3453316b5c", "sid": "7bad5f2fb752ee957a4ab74aaac7711g", "requests": [ { "func": "w_biblio_reader_create", "id": "biblio_reader_create", "param": { "libhouse": "13075471", "name": "Иванов Василий", "birth_date": "2000-05-17", "mail": "12545@gmail.com", "phone": "79261234567", "groups": [ "класс 1Б", "класс 1А" ] } } ] }
Пример ответа сервера в случае успеха
{ "biblio_reader_create" : { "is_merged" : 0, "success" : true, "lib_card" : 504628684, "name" : "Иванов Василий", "mail" : "12345@gmail.com", "is_hybrid" : 0, "password" : " ", "groups" : [ "класс 1Б", "класс 1А" ], "birth_date" : "2000-05-17", "phone" : null, "login" : 504628684, "create_date" : "2019-04-17T16:53:52+03:00" }, "success" : true, "time" : "2019-04-17T16:48:58+03:00" }
Пример ответа сервера в случае ошибки
{ "success" : true, "time" : "2019-04-17T16:51:16+03:00", "biblio_reader_create" : { "time" : "2019-04-17T16:51:16+03:00", "success" : false, "error_code" : 101005, "error_message" : "method not allowed to user" } }