2017 © Pedro Peláez
 

library php-realtypult-partner-lib

API библиотека для интеграции с RealtyPult https://realtypult.ru

image

bushev/php-realtypult-partner-lib

API библиотека для интеграции с RealtyPult https://realtypult.ru

  • Tuesday, February 7, 2017
  • by bushev
  • Repository
  • 2 Watchers
  • 1 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

php-realtypult-partner-lib Build Status

API библиотека для интеграции с RealtyPult. Подключение портала недвижимости к партнерской программе., (*1)

Нужна версия для NodeJS?

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)

The Versions

07/02 2017

dev-master

9999999-dev https://github.com/bushev/php-realtypult-partner-lib

API библиотека для интеграции с RealtyPult https://realtypult.ru

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

by Bushev Yuriy