Download the PHP package extrareality/api-helper without Composer
On this page you can find all versions of the php package extrareality/api-helper. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download extrareality/api-helper
More information about extrareality/api-helper
Files in extrareality/api-helper
Package api-helper
Short Description A helper library to communicate with Extrareality sites
License MIT
Informations about the package api-helper
Если вам зачем-то нужна предыдущая версия нашего API, то она описана здесь. Но использовать её мы не рекомендуем, лучше используйте последнюю. Соответственно, код API-клиента из данного репозитория тоже использовать смысла нет, т.к. он для старогй версии API.
Extrareality API v2
С каждым запросом мы отправляем параметр:
- datetime (например "2019-05-01 12:00:00")
- signature
Он генерируется на основе секретного ключа, который знаем только мы и вы. По нему вы можете убедиться, что запрос действительно идет от нас, но эта проверка не обязательна.
Подпись (signature) формируется следующим образом:
Используемые параметры:
- datetime - в формате "Y-m-d H:i:s" (т.е. yyyy-mm-dd hh:mm:ss)
- secret - наш общий маленький секрет ;)
Быстрые ссылки к описанию методов
Вы должны предоставить нам 2 URL на вашем сайте, по которому реализован наш API, и на которые мы будет слать запросы:
- Бронирование
- Расписание
Расписание
Метод: GET
Вы выдаете список всех ваших слотов примерно на месяц вперед, но добавляете в каждый из них поле "extraPrices", которое содержит массив. В нём: ключ - условие, значение - цена.
Каждый слот - это объект, содержащий следующие свойства:
- date (Y-m-d)
- time (H:i)
- is_free - (boolean) true означает доступность для бронирования. Если время игры прошло или слот уже забронирован, то необходимо возвращать false.
- extraPrices (массив цен, в котором ключ - это условие, значение - цена).
Также вы можете передавать нам дополнительные параметры, которые мы вернем вам при бронировании (в примере _our_timeid).
Пример:
Бронирование
Метод: POST
На указанный вами URL будут приходить следующие поля:
- comment - комментарий от клиента (если есть)
- datetime - дата и время игры в формате "Y-m-d H:i:s"
- email - может содержать null, так что учитывайте это при в ставке в вашу БД
- name - имя клиента
- phone - телефон клиента
- players_num - количество игроков
- price - цена игры
- signature - описано в начале документа
- source - от нас всегда "extrareality"
- uid: уникальный ID брони на нашем сайте
Также мы можем отправлять дополнительные параметры, которые указаны в слотах вашего расписания, например our_time_id, или прочие по предварительному согласованию.
В случае успешной обработки запроса вам необходимо вернуть ответ в json:
В случае неудачи вернуть:
Здесь в поле message текст с причиной ошибки.
Пример:
Запрос
Ответ
или
Получить список отзывов
В предыдущих методах запрос исходил от нас, а в этом случае GET-запрос отправляете уже вы. Рекомендуется отправлять его не чаще раза в 30 минут.
Адрес для запроса будет такой: https://extrareality.by/api2/reviews?quest_id=...
Получаются последние отзывы (сортировка по убыванию).
Прочие возможные параметры (помимо quest_id):
- newer_than_id - если указан, то отзывы берутся не все подряд, а начиная с этого id отзыва (т.е. при получении списка, можно максимальный id сохранять, а на следующий день получать начиная с него)
- quantity - количество отзывов для получения, максимум 100 (если меньше 1, то возьмется 50)
- rating_threshold - не ниже какой средней оценки выбирать отзывы (7.5, 8 и т.д.)
Ответ:
Получить рейтинг квеста
Отправляете GET-запрос на следующий адрес:
https://extrareality.by/api2/rating?quest_id=...
или если вам нужен результат в JSON:
https://extrareality.by/api2/rating?quest_id=...&json=1
Во втором случае ответ будет примерно следующим: