karevn / yandex-taxi-corp-client
Клиентское API для корпоративного клиента Яндекс Такси
Requires
- php-http/guzzle6-adapter: ^2.0
- ramsey/uuid: ^4.0
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-04-20 01:27:25 UTC
README
Создана мной для упрощения использования API корпоративного клиента Яндекс такси из внешних приложений на PHP.
Лицензия / License
Эта библиотека лицензирована по лицензии MIT, см. файл LICENSE.txt. This library is distributed under MIT license, please refer to LICENSE.txt file.
Установка
Требуется PHP версии 7.1 или новее и composer. Предполагается, что composer и autoload уже настроены. Вам потребуется выполнить следующий код:
php composer.phar require karevn/yandex-taxi-corp-client
Получение доступа
Вам потребуется зайти в интерфейс личного кабинета Яндекс Такси для бизнеса под аккаунтом Яндекс.Паспорта, для которого кабинет был создан (именно тот самый, дополнительные аккаунты не годятся). В кабинете надо зайти на закладку "Профиль компании" и получить токен, нажав кнопку "Токен для API" внизу страницы.
Использование
Инициализация
Перед любыми действиями с API надо создать экземпляр клиента и авторизоваться:
use YandexTaxiCorpClient\Client; $token = '<ваш токен oAuth'; $client = new Client($token); $client->authenticate();
Получение адреса по известным геокоординатам
// Первый параметр - долгота, второй - широта $address = $client->convertPositionToAddress(37.60936701562499, 55.75253245573649);
Получение наиболее похожего адреса по тексту
// Первый параметр - текст, второй - долгота, третий - широта точки, поблизости // от которой надо искать. Обычно это центр вашего города или ваша геопозиция. $address = $client->findAddress('Москва, Кремль', 37.60936701562499, 55.75253245573649);
Поиск ближайшей точки посадки или высадки по координатам
// Первые два параметра - широта и долгота, последний - тип точки (true = посадка, false = высадка) $address = $client->getNearestPickupPoint(37.60936701562499, 55.75253245573649, true);
Заказ с оценкой
// Получим адреса начала и конца поездки $source = $client->getAddressByPosition(37.60936701562499, 55.75253245573649); $destination = $client->getAddressByPosition(37.60936701562499, 55.76253245573649); // Теперь оценим поездку с требованием "перевозка животного" $estimate = $client->estimate(new EstimateParams( // Телефон передаётся без разделительных пробелов и плюса '71234567890', // Точек поездки может быть больше [new RoutePoint($source), new RoutePoint($destination)], // Тариф 'comfortplus', // Требования array(new BooleanRequirement('animaltransport', true)) )); // Покажем оценку echo $estimate->getPrice(); // Создадим объект заказа на основе оценки $order = Order::createFromEstimate($estimate); // Создадим заказ, в этот момент он создаётся, но не забирается в работу. $orderID = $client->createOrder($order); // А вот теперь мы его подтверждаем и он пойдёт в работу. $client->commitOrder($orderID);