Наверх

Разделы API » Афиша

На этой странице описываются методы для получения информации о событиях ресторана:

events/getmany

Описание метода

Метод необходим для получения списка событий. С помощью этого метода, Вы можете получить список будущих событий (афиша), или список прошедших событий, или список событий с фотографиями (фотоотчеты).

Параметры метода

Название параметра Обязательный Описание и возможные значения Пример значения
v да

Версия метода. Текущая версия метода - 2.

2

page да

Номер страницы с событиями. Номер первой страницы - 1.

1

limit да

Количество событий на одну страницу. Максимальное значение - 20.

10

type да

Этот параметр может принимать следующие значения:

guide - для получения афишы ресторана (события, которые идут сейчас, и будущие события).

reports - для получения фотоотчетов (список прошедших событий, в которые были добавлены фотографии).

past - для получения всех прошедших событий (с фотографиями и без фотографий).

guide

now_time да

Время, которое обозначает ваше текущее местное время в сокращенном формате ISO-8601, т.е. дата указывается в формате YYYYMMDD, затем следует латинская буква "T", затем время в формате HHMMSS, без указания часового пояса.

В PHP, получить местное время с помощью функции date в сокращенном формате ISO-8601 можно так:


<?php echo date('Ymd\THis'); ?>

Текущее местное время требуется для того чтобы определить тип события (будущее, идет сейчас, или прошедшее) при выборке событий.

20240428T000403

Пример запроса

Получить 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

нет

Уникальный номер события.

string

name

нет

Название события.

string

description

нет

Описание события.

string

images_count

нет

Количество фотографий в событии.

string

start_time

нет

Время начала события в формате ISO-8601 2012-08-14T03:00:00 без указания часового пояса, что означает местное время начала события*.

string

end_time

нет

Время окончания события в формате ISO-8601 2012-08-14T06:00:00 без указания часового пояса, что означает местное время окончания события*.

string

status

нет

Статус события относительно времени, которое было передано в параметре now_time в запросе к API.

Может принимать значения:
future (событие еще не началось),
today (событие пройдет сегодня),
now (событие идет сейчас),
past (событие завершилось).

Статус события удобно использовать для вывода меток типа "Идет сейчас!", "Сегодня!", и т.д. в афише событий.

string

cover

да

Обложка события.

Ключи в массиве - 100, 150, 200, 300, 500, 1024 - обозначают максимальную ширину изображения.

Минимальная гарантированная ширина изображения - 200 пикселей. Т.е. изображение в ключах 300, 500, 1024 могут иметь ширину меньше заявленной.

Изображения не имеют фиксированной высоты.

ассоциативный array

Название поля Может быть пустым Описание Тип переменной
source

нет

Абсолютный URL адрес фотографии.

string

width

нет

Ширина фотографии в пикселях.

string

height

нет

Высота фотографии в пикселях.

string

Объект pagination содержит необходимую информацию для создания страниц с событиями:

Название поля Может быть пустым Описание Тип переменной
page

нет

Значение, которое было передано в параметре page в запросе. Обозначает номер текущей страницы.

string

limit

нет

Значение, которое было передано в параметре limit в запросе. Обозначает максимальное количество событий для одной страницы.

string

total_pages

нет

Общее количество страниц с событиями в ресторане.

string

total_items

нет

Общее количество событий в ресторане.

string

*Замечание по времени начала и окончания события:

Время начала или окончания события не должно различаться, если событие отображается на разных сайтах с разными часовыми поясами. Этого можно достичь, передавая время в местном формате. Это актуально только для событий, т.к. чтобы вовремя попасть на событие, нужно знать именно местное время начала и окончания.

Согласно стандарту 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.

2

id да

Уникальный номер события.

77

now_time да

Текущее местное время в сокращенном формате ISO-8601. Более подробную информацию смотрите в параметре now_time метода events/getmany.

20240428T000403

photos_page нет

Необходимая страница для фотографий события. Данный параметр нужно указывать вместе с пареметром photos_limit. Чтобы получить первую страницу, указывайте значение 1.

1

photos_limit нет

Максимальное количество фотографий события на одну страницу. Данный параметр необходимо указывать вместе с пареметром photos_page.

Если в запросе указаны оба параметра photos_page и photos_limit, то в ответе в ключе images появятся фотографии события (если у события есть фотографии). Максимальное количество фотографий на одну страницу - 50.

10

other_guide_limit нет

Количество событий из афишы. Если этот параметр указан, то в ответе в ключе other['guide'] появится список событий из афишы. Указывайте этот параметр, если хотите создать ссылки на события из афишы со страницы открытого события. Максимальное значение - 10.

4

other_reports_limit нет

Количество фотоотчетов. Если этот параметр указан, то в ответе в ключе other['reports'] появится список последних фотоотчетов. Указывайте этот параметр, если хотите создать ссылки на фотоочеты со страницы открытого события. Максимальное значение - 10.

4

other_past_limit нет

Количество прошедших событий. Если этот параметр указан, то в ответе в ключе other['past'] появится список из последних прошедших событий ресторана. Указывайте этот параметр, если хотите создать ссылки на прошедшие события ресторана со страницы открытого события. Максимальное значение - 10.

4

Пример запроса

Получить событие с уникальным номером 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

Уникальный номер фотографии.

нет

string

caption

Описание фотографии.

да

string

sizes

Ссылки на разные размеры фотографии.

Ключи в массиве - 100, 150, 200, 1024 - обозначают максимальную ширину изображения.

Минимальная гарантированная ширина изображения - 480 пикселей. Т.е. изображение в ключе 1024 может иметь ширину от 480 до 1024 пикселей.

Изображения не имеют фиксированной высоты.

нет

ассоциативный array

Название поля Описание Может быть пустым Тип переменной
source

Абсолютный URL адрес фотографии.

нет

string

width

Ширина фотографии в пикселях.

нет

string

height

Высота фотографии в пикселях.

нет

string

Объект pagination содержит необходимую информацию для создания страниц с фотографиями:

Название поля Может быть пустым Описание Тип переменной
page

нет

Значение, которое было передано в параметре photos_page в запросе. Обозначает номер текущей страницы.

string

limit

нет

Значение, которое было передано в параметре photos_limit в запросе. Обозначает максимальное количество фотографий для одной страницы.

string

total_pages

нет

Общее количество страниц с фотографиями в ресторане.

string

total_items

нет

Общее количество фотографий в событии.

string



Если в запросе были указаны дополнительные параметры 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.