В выбранной библиотеке создаётся новый читательский билет. При этом:

  • Если указан читательский 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"
   }
}