dev-master
9999999-dev https://github.com/bushev/php-realtypult-partner-libAPI библиотека для интеграции с RealtyPult https://realtypult.ru
MIT
The Requires
- php ^5.6 || ^7.0
The Development Requires
by Bushev Yuriy
Wallogit.com
2017 © Pedro Peláez
API библиотека для интеграции с RealtyPult https://realtypult.ru
API библиотека для интеграции с RealtyPult. Подключение портала недвижимости к партнерской программе., (*1)
https://github.com/bushev/nodejs-realtypult-partner-lib, (*2)
Вы можете скачать последнюю версию библиотеки по ссылке:, (*3)
https://github.com/bushev/php-realtypult-partner-lib/archive/master.zip, (*4)
Скопируйте файл realtypult-importer.php в ваш PHP проект и подключите его в коде:, (*5)
``` php require_once 'realtypult-importer.php';, (*6)
Если вы используете Composer для управления зависимостями проекта, вы можете установить библиотеку для RealtyPult напрямую из репозитория. Обновите ваш файл composer.json (добавьте новую зависимость): ``` json { "require": { "bushev/php-realtypult-partner-lib": "^1.0" } }
После чего выполните установку:, (*7)
php composer.phar install, (*8)
``` php require_once 'realtypult-importer.php';, (*9)
/** * Обработчик одного объявления * * Требуется реализовать алгоритм: * * 1. Проверить (по $item->id) размещали ли вы это объявления ранее * * Если не размещали: * 2.1 Сохраните объявление в вашей базе данных (не забудьте скачать себе изображения объекта) * 2.2 Верните объект (sdtClass) со ссылкой на объявление на вашем сайте * Например: * $result->url = 'http://your-site.ru/item-123'; * return $result; * * * Если размещали: * 2.1 Проверьте, изменилось ли обновление, если да то обновите его в вашей базе данных * (не забудьте про изображения) * 2.2 Получите из вашей базы данных количество просмотров этого объявления (рекомендуется) * 2.2 Верните объект (sdtClass) со ссылкой на объявление на вашем сайте, * и количеством просмотров (рекомендуется) * Например: * $result->url = 'http://your-site.ru/item-123'; * $result->views = 15; * return $result; * * * В случае если на каком-либо этапе вы понимаете что это объявление не может быть * обработано корректно, верните объект (sdtClass) с сообщением об ошибке * Например: * $result->error = 'Произошел технический сбой'; * return $result; * * * Помните, что сообщение о об ошибке увидит конечный пользователь! * * Примеры частых ошибок: * * > Произошел технический сбой (проблема с базой данных, нет места на диске, и тп.) * > Не удалось определить адрес объекта * > И тп. * * В случае если в вашей базе данных есть очень похожее объявление, верните * объект (sdtClass) со ссылкой на это объявление (размещать это объявление не нужно) * Например: * $result->similarUrl = 'http://your-site.ru/item2'; * return $result; * * * В случае если вы не можете разместить объявление в силу нарушений ваших правил, * верните объект (sdtClass) с сообщением пользователю * Например: * $result->rejectReason = 'Номер телефона заблокирован'; * return $result; * * Примеры частых ошибок: * * > Номер телефона заблокирован * > Слишком низкая цена для этого объявления * > И тп. * * Помните, что сообщение об отклонении объявления увидит конечный пользователь! * * * @param $item - объект содержащий всю информацию об объявлении * @return stdClass - результат обработки */ $onItem = function ($item) {, (*10)
echo "Обрабатываем объявление #" . $item->id . "\r\n"; print_r($item); $result = new \stdClass(); // Успешно размещено // $result->url = 'http://your-site.ru/item-123'; // $result->views = 15; // ИЛИ // Проблема с доступом к базе данных / Недостаточно памяти // $result->error = 'Произошел технический сбой'; // ИЛИ // Объявление дубликат // $result->similarUrl = 'http://your-site.ru/item2'; // ИЛИ // Не соответствует правилам вашего портала // $result->rejectReason = 'Номер телефона заблокирован'; return $result;
};, (*11)
/** * Обработчик конца импорта * * Здесь нужно удалить из вашей базы данных все объявления которые отсутствовали в * XML фиде (не забудьте удалить изображения) * * @param $report * @param $report ->location - Путь до файла с готовым отчетом (ссылку на него нужно * вставить в личный кабинет партнера) * @param $report ->statistics.total - Общее число объявление в фиде * @param $report ->statistics.success - Число объявление обработанных успешно * @param $report ->statistics.rejected - Число объявление отклоненных от публикации * @param $report ->statistics.errors - Число объявление обработанных с ошибками */ $onEnd = function ($report) {, (*12)
echo "Обработка XML фида завершена!\r\n"; var_dump($report);
};, (*13)
/** * Обработчик ошибки обработки XML фида * * @param $error */ $onError = function ($error) {, (*14)
echo "Произошла ошибка " . $error . "\r\n";
$this->assertEquals('I\'m here!', 'Should not be here!');
};, (*15)
$options = new \stdClass();, (*16)
// Ссылка на XML фид из личного кабинета партнера $options->xmlFeedUrl = 'https://realtypult.ru/api/xml/export/partner/FORMAT/TOKEN';, (*17)
// Путь к файлу отчета, файл будет создаваться автоматически $options->reportFileLocation = '/var/www/my-site/public/rm-report.xml';, (*18)
// Формат XML фида ('realtypult' или 'yandex') $options->format = 'realtypult';, (*19)
// Функция будет вызвана для каждого объявления из XML фида $options->onItem = $onItem;, (*20)
// Функция будет вызвана когда весь XML фид будет обработан $options->onEnd = $onEnd;, (*21)
// Функция будет вызвана в случае непредвиденной критической ошибки $options->onError = $onError;, (*22)
$importer = new \RealtyPultImporter($options);, (*23)
// Запускаем импорт $importer->run(); ```, (*24)
Код этого примера находится тут., (*25)
API библиотека для интеграции с RealtyPult https://realtypult.ru
MIT