Разделы API » Афиша
На этой странице описываются методы для получения информации о событиях ресторана:
events/getmany
Описание метода
Метод необходим для получения списка событий. С помощью этого метода, Вы можете получить список будущих событий (афиша), или список прошедших событий, или список событий с фотографиями (фотоотчеты).
Параметры метода
Название параметра | Обязательный | Описание и возможные значения | Пример значения |
v |
да | Версия метода. Текущая версия метода - 2. |
|
page |
да | Номер страницы с событиями. Номер первой страницы - 1. |
|
limit |
да | Количество событий на одну страницу. Максимальное значение - 20. |
|
type |
да | Этот параметр может принимать следующие значения:
|
|
now_time |
да |
Время, которое обозначает ваше текущее местное время в сокращенном формате ISO-8601, т.е. дата указывается в формате YYYYMMDD, затем следует латинская буква "T", затем время в формате HHMMSS, без указания часового пояса. В PHP, получить местное время с помощью функции date в сокращенном формате ISO-8601 можно так:
Текущее местное время требуется для того чтобы определить тип события (будущее, идет сейчас, или прошедшее) при выборке событий. |
|
Пример запроса
Получить 10 событий из афишы ресторана:
<?php
include ('restobaza.class.php');
$config = array(
"co_id" => 1,
"app_id" => 6,
"app_secret" => 'tc1a7g8b12dbd445'
);
$restobaza = new Restobaza($config);
$api_params = array(
"v" => 2,
"page" => 1,
"limit" => 10,
"type" => 'guide',
"now_time" => date('Ymd\THis')
);
$rb_response = $restobaza->api('events/getmany', $api_params);
?>
Пример ответа
Если в ресторане нет событий, то в ответе будет пустой массив. Если события есть:
{ "pagination": { "page": 1, "limit": 2, "total_pages": 1, "total_items": 1 }, "list": [ { "id": "30", "name": "name", "description": "text", "images_count": "2", "cover": { "100": { "width": 100, "height": 66, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_100_517a5dab4ed2b.jpg" }, "150": { "width": 150, "height": 100, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_150_517a5dab4ed2b.jpg" }, "200": { "width": 200, "height": 133, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_200_517a5dab4ed2b.jpg" }, "300": { "width": 300, "height": 199, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_300_517a5dab4ed2b.jpg" }, "500": { "width": 500, "height": 332, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_500_517a5dab4ed2b.jpg" }, "1024": { "width": 1024, "height": 680, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_1024_517a5dab4ed2b.jpg" } }, "start_time": "2013-03-18T15:00:00", "end_time": "2013-03-18T20:00:00", "status": "future" }, {...} ] }
Описание ответа
Список событий содержится в ключе list
, который представляет собой массив из объектов event
.
Объект event
:
Название поля | Может быть пустым | Описание | Тип переменной | ||||||||||||||||
id |
нет |
Уникальный номер события. |
|
||||||||||||||||
name |
нет |
Название события. |
|
||||||||||||||||
description |
нет |
Описание события. |
|
||||||||||||||||
images_count |
нет |
Количество фотографий в событии. |
|
||||||||||||||||
start_time |
нет |
Время начала события в формате ISO-8601 |
|
||||||||||||||||
end_time |
нет |
Время окончания события в формате ISO-8601 |
|
||||||||||||||||
status |
нет |
Статус события относительно времени, которое было передано в параметре Может принимать значения: Статус события удобно использовать для вывода меток типа "Идет сейчас!", "Сегодня!", и т.д. в афише событий. |
|
||||||||||||||||
cover |
да |
Обложка события.
Ключи в массиве - Минимальная гарантированная ширина изображения - 200 пикселей. Т.е. изображение в ключах Изображения не имеют фиксированной высоты. |
ассоциативный |
||||||||||||||||
|
Объект pagination
содержит необходимую информацию для создания страниц с событиями:
Название поля | Может быть пустым | Описание | Тип переменной |
page |
нет |
Значение, которое было передано в параметре |
|
limit |
нет |
Значение, которое было передано в параметре |
|
total_pages |
нет |
Общее количество страниц с событиями в ресторане. |
|
total_items |
нет |
Общее количество событий в ресторане. |
|
*Замечание по времени начала и окончания события:
Время начала или окончания события не должно различаться, если событие отображается на разных сайтах с разными часовыми поясами. Этого можно достичь, передавая время в местном формате. Это актуально только для событий, т.к. чтобы вовремя попасть на событие, нужно знать именно местное время начала и окончания.
Согласно стандарту ISO-8601, формат времени без указания часового пояса обозначает местное (локальное) время. В связи с этим, время начала и окончания события передается в формате ISO-8601 без указания часового пояса (без "+00:00", или "Z" на конце для обозначения времени в UTC): 2012-08-14T06:00:00
(т.е. не 2012-08-14T06:00:00+00:00
, или 2012-08-14T06:00:00Z
). Такой концепции, в том числе, придерживается Facebook в API по событиям.
В PHP, функция strtotime правильным образом интерпретирует местное время по стандарту ISO-8601 (2012-08-14T06:00:00
), и не корректирует это время по часовому поясу. Поэтому, при использовании strtotime вместе с функцией date всегда получается одинаковое время события, не зависимо от того, в каком часовом поясе находится сервер:
<?php
$iso_8601_local_time = '2012-08-14T20:00:00';
$iso_8601_UTC_time = '2012-08-14T20:00:00+00:00';
// set time zone to UTC
date_default_timezone_set('UTC');
$start_time = date("Y-m-d H:i:s", strtotime($iso_8601_local_time));
var_dump($start_time);
// result: 2012-08-14 20:00:00
// set time zone to Moscow
date_default_timezone_set('Europe/Moscow');
$start_time = date("Y-m-d H:i:s", strtotime($iso_8601_local_time));
var_dump($start_time);
// result: 2012-08-14 20:00:00
// set time zone to Vladivostok
date_default_timezone_set('Asia/Vladivostok');
$start_time = date("Y-m-d H:i:s", strtotime($iso_8601_local_time));
var_dump($start_time);
// result: 2012-08-14 20:00:00
// set time zone to UTC
date_default_timezone_set('UTC');
$start_time = date("Y-m-d H:i:s", strtotime($iso_8601_UTC_time));
var_dump($start_time);
// result: 2012-08-14 20:00:00
// set time zone to Moscow
date_default_timezone_set('Europe/Moscow');
$start_time = date("Y-m-d H:i:s", strtotime($iso_8601_UTC_time));
var_dump($start_time);
// result: 2012-08-15 00:00:00 (+4 hours)
// set time zone to Vladivostok
date_default_timezone_set('Asia/Vladivostok');
$start_time = date("Y-m-d H:i:s", strtotime($iso_8601_UTC_time));
var_dump($start_time);
// result: 2012-08-15 07:00:00 (+11 hours)
?>
events/getone
Описание метода
Метод необходим для создания отдельной страницы для события, а также для создания отдельной страницы для фотографий события.
Параметры запроса
Название параметра | Обязательный | Описание и возможные значения | Пример |
v |
да | Версия метода. Текущая версия метода - 2. |
|
id |
да | Уникальный номер события. |
|
now_time |
да |
Текущее местное время в сокращенном формате ISO-8601. Более подробную информацию смотрите в параметре |
|
photos_page |
нет | Необходимая страница для фотографий события. Данный параметр нужно указывать вместе с пареметром |
|
photos_limit |
нет |
Максимальное количество фотографий события на одну страницу. Данный параметр необходимо указывать вместе с пареметром Если в запросе указаны оба параметра |
|
other_guide_limit |
нет |
Количество событий из афишы. Если этот параметр указан, то в ответе в ключе |
|
other_reports_limit |
нет |
Количество фотоотчетов. Если этот параметр указан, то в ответе в ключе |
|
other_past_limit |
нет |
Количество прошедших событий. Если этот параметр указан, то в ответе в ключе |
|
Пример запроса
Получить событие с уникальным номером 77, 10 фотографий этого события, а также 4 события из афишы, 4 фотоотчета, и 4 прошедших события:
<?php
include ('restobaza.class.php');
$config = array(
"co_id" => 1,
"app_id" => 6,
"app_secret" => 'tc1a7g8b12dbd445'
);
$restobaza = new Restobaza($config);
$api_params = array(
"v" => 2,
"id" => 77,
"now_time" => date('Ymd\THis'),
"photos_page" => 1,
"photos_limit" => 10,
"other_guide_limit" => 4,
"other_reports_limit" => 4,
"other_past_limit" => 4
);
$rb_response = $restobaza->api('events/getone', $api_params);
?>
Пример ответа
Если были указаны только обязательные параметры, в ответ вы получите объект events
, при этом ключи images
, other['guide']
, other['reports']
, other['past']
в объекте будут пустыми:
{ "id": "30", "name": "name", "description": "text", "images_count": "2", "cover": { "100": { "width": 100, "height": 66, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_100_517a5dab4ed2b.jpg" }, "150": { "width": 150, "height": 100, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_150_517a5dab4ed2b.jpg" }, "200": { "width": 200, "height": 133, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_200_517a5dab4ed2b.jpg" }, "300": { "width": 300, "height": 199, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_300_517a5dab4ed2b.jpg" }, "500": { "width": 500, "height": 332, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_500_517a5dab4ed2b.jpg" }, "1024": { "width": 1024, "height": 680, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_1024_517a5dab4ed2b.jpg" } }, "start_time": "2013-03-18T15:00:00", "end_time": "2013-03-18T20:00:00", "status": "past", "images": [ ], "other": { "guide": [ ], "reports": [ ], "past": [ ] } }
Если в запросе были указаны дополнительные параметры photos_limit
и photos_page
, то ключ images
будет содержать список фотографий события. Если у события нет фотографий, то этот ключ будет пустым.
"images": { "pagination": { "page": 1, "limit": 2, "total_pages": 1, "total_items": "2" }, "list": [ { "id": "248", "caption": null, "sizes": { "100": { "width": 100, "height": 67, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_100_517a5dbee922c.jpg" }, "150": { "width": 150, "height": 100, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_150_517a5dbee922c.jpg" }, "200": { "width": 200, "height": 133, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_200_517a5dbee922c.jpg" }, "1024": { "width": 800, "height": 533, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_1024_517a5dbee922c.jpg" } } }, {...} ] },
В ответе, список фотографий содержится в ключе list
, который представляет собой массив из объектов photo
.
Объект photo
:
Название поля | Описание | Может быть пустым | Тип переменной | ||||||||||||||||
id |
Уникальный номер фотографии. |
нет |
|
||||||||||||||||
caption |
Описание фотографии. |
да |
|
||||||||||||||||
sizes |
Ссылки на разные размеры фотографии.
Ключи в массиве -
Минимальная гарантированная ширина изображения - 480 пикселей. Т.е. изображение в ключе Изображения не имеют фиксированной высоты. |
нет |
ассоциативный |
||||||||||||||||
|
Объект pagination
содержит необходимую информацию для создания страниц с фотографиями:
Название поля | Может быть пустым | Описание | Тип переменной |
page |
нет |
Значение, которое было передано в параметре |
|
limit |
нет |
Значение, которое было передано в параметре |
|
total_pages |
нет |
Общее количество страниц с фотографиями в ресторане. |
|
total_items |
нет |
Общее количество фотографий в событии. |
|
Если в запросе были указаны дополнительные параметры other_guide_limit
, other_reports_limit
, other_past_limit
, то в ответе ключи other['guide']
, other['reports']
, other['past']
будут содержать списки с разными типами событий ресторана. Если какого-то типа событий в ресторане нет, то соответсвующий ключ будет пустым:
"other": { "guide": { "pagination": { "page": 1, "limit": 2, "total_pages": 1, "total_items": 2 }, "list": [ { "id": "27", "name": "Name", "description": "Description", "images_count": "0", "cover": { "100": { "width": 100, "height": 67, "source": "http://img.restobaza_local.ru/co/co25/events/27/25_events_27_100_517a5d0e3e30a.jpg" }, "150": { "width": 150, "height": 100, "source": "http://img.restobaza_local.ru/co/co25/events/27/25_events_27_150_517a5d0e3e30a.jpg" }, "200": { "width": 200, "height": 133, "source": "http://img.restobaza_local.ru/co/co25/events/27/25_events_27_200_517a5d0e3e30a.jpg" }, "300": { "width": 300, "height": 200, "source": "http://img.restobaza_local.ru/co/co25/events/27/25_events_27_300_517a5d0e3e30a.jpg" }, "500": { "width": 500, "height": 333, "source": "http://img.restobaza_local.ru/co/co25/events/27/25_events_27_500_517a5d0e3e30a.jpg" }, "1024": { "width": 1024, "height": 681, "source": "http://img.restobaza_local.ru/co/co25/events/27/25_events_27_1024_517a5d0e3e30a.jpg" } }, "start_time": "2013-10-01T03:00:00", "end_time": "2013-10-01T10:00:00", "status": "future" }, {...} ] }, "reports": { "pagination": { "page": 1, "limit": 2, "total_pages": 1, "total_items": 1 }, "list": [ { "id": "30", "name": "name", "description": "text", "images_count": "2", "cover": { "100": { "width": 100, "height": 66, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_100_517a5dab4ed2b.jpg" }, "150": { "width": 150, "height": 100, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_150_517a5dab4ed2b.jpg" }, "200": { "width": 200, "height": 133, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_200_517a5dab4ed2b.jpg" }, "300": { "width": 300, "height": 199, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_300_517a5dab4ed2b.jpg" }, "500": { "width": 500, "height": 332, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_500_517a5dab4ed2b.jpg" }, "1024": { "width": 1024, "height": 680, "source": "http://img.restobaza_local.ru/co/co25/events/30/25_events_30_1024_517a5dab4ed2b.jpg" } }, "start_time": "2013-03-18T15:00:00", "end_time": "2013-03-18T20:00:00", "status": "future" } ] }, "past": [ ] }
Списки событий в ключах other['guide']
, other['reports']
, other['past']
имеют одинаковую структуру. Информация в каждом из списков ничем не отличается от той, которую можно получить с помощью метода events/getmany.