/
Tripster API для php
Tripster API для php
TripsterAPI и примеры использования
<? /****************************************************** * Класс для запросов к Tripster API ******************************************************/ class TripsterAPI { private $token; public function __construct($token) { $this->token = $token; } // GET-запрос на указанный ресурс с переданными параметрами public function get($resource, array $parameters = array()) { $query_string = http_build_query($parameters); $curl = curl_init("https://experience.tripster.ru/api/$resource/?$query_string"); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array( 'Authorization: Token '.$this->token, 'Content-Type: application/json' ) )); // Получаем данные и закрывааем соединение $results = curl_exec($curl); curl_close($curl); // Декодируем полученный json // параметр true для возвращения ассоциативного массива вместо объекта return json_decode($results, true); } } /****************************************************** * Пример 1: Получаем экскурсии в Москве (первые 10) ******************************************************/ $api = new TripsterAPI("xxxxxxxxxx6614887d94913470d64e1775c9a33c"); $result = $api->get("experiences", array("city__name_ru" => "Москва")); print_r($result); /****************************************************** * Пример 2: Получаем все экскурсии в Москве * и складываем в отдельный массив ******************************************************/ $api = new TripsterAPI("xxxxxxxxxx6614887d94913470d64e1775c9a33c"); $experiences = array(); $page = 1; while(true) { print("Страница $page\n"); $page_results = $api->get("experiences", array( "city__name_ru" => "Москва", "page_size" => 100, "page" => $page, )); // Добавляем экскурсии к общему массиву экскурсий $experiences = array_merge($experiences, $page_results["results"]); // Если это последняя страница — заканчиваем, иначе запрашиваем следующую if (!$page_results["next"]) break; $page++; } // Выводим число экскурсий $experiences_count = count($experiences); print "Всего экскурсий в Москве: $experiences_count\n"; /****************************************************** * Пример 3: Получаем все экскурсии в Москве * и складываем рубрики в отдельный массив ******************************************************/ $api = new TripsterAPI("xxxxxxxxxx6614887d94913470d64e1775c9a33c"); $tags = array(); $page = 1; while(true) { print("Страница $page\n"); $page_results = $api->get("experiences", array( "city__name_ru" => "Москва", "page_size" => 15, "page" => $page, )); // Вытаскиваем рубрики из каждой экскурсии и добавляем их // в общий ассоциативный массив id => рубрика foreach ($page_results["results"] as $experience) { foreach ($experience["tags"] as $tag) { $tags[$tag["id"]] = $tag; } } // Если это последняя страница заканчиваем if (!$page_results["next"]) break; $page++; } // Выводим число рубрик $tags_count = count($tags); print "Число рубрик в Москве: $tags_count\n"; /****************************************************** * Пример 4: Получаем рубрики экскурсии в Москве * одним запросом ******************************************************/ $api = new TripsterAPI("xxxxxxxxxx6614887d94913470d64e1775c9a33c"); $result = $api->get("citytags", array( "city__name_ru" => "Москва", "page_size" => 30, )); $tags = $result["results"]; // Выводим число рубрик $tags_count = count($tags); print "Число рубрик в Москве: $tags_count\n"; ?>
, multiple selections available,
Related content
Tripster API NEW
Tripster API NEW
Read with this
Как собрать раздел "Туры" через API
Как собрать раздел "Туры" через API
More like this
6. Гиды
More like this
Постраничная загрузка данных
Постраничная загрузка данных
More like this
3.1. Регионы
3.1. Регионы
More like this
3. Страны
3. Страны
More like this