Разделы 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.