Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bushev/php-realtypult-partner-lib
API библиотека для интеграции с RealtyPult
https://github.com/bushev/php-realtypult-partner-lib
api-realtypult partnership php realtypult xml
Last synced: about 2 months ago
JSON representation
API библиотека для интеграции с RealtyPult
- Host: GitHub
- URL: https://github.com/bushev/php-realtypult-partner-lib
- Owner: bushev
- Created: 2017-01-02T21:30:50.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-02-07T10:14:03.000Z (almost 8 years ago)
- Last Synced: 2024-10-14T00:33:27.429Z (3 months ago)
- Topics: api-realtypult, partnership, php, realtypult, xml
- Language: PHP
- Homepage: https://realtypult.ru/partner/signup
- Size: 14.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# php-realtypult-partner-lib [![Build Status](https://travis-ci.org/bushev/php-realtypult-partner-lib.svg?branch=master)](https://travis-ci.org/bushev/php-realtypult-partner-lib)
API библиотека для интеграции с RealtyPult. Подключение портала недвижимости к [партнерской программе](https://realtypult.ru/partner/signup).
## Нужна версия для NodeJS?
[https://github.com/bushev/nodejs-realtypult-partner-lib](https://github.com/bushev/nodejs-realtypult-partner-lib)
## Как установить
Вы можете скачать последнюю версию библиотеки по ссылке:
[https://github.com/bushev/php-realtypult-partner-lib/archive/master.zip](https://github.com/bushev/php-realtypult-partner-lib/archive/master.zip)
Скопируйте файл `realtypult-importer.php` в ваш PHP проект и подключите его в коде:
``` php
require_once 'realtypult-importer.php';
```Если вы используете Composer для управления зависимостями проекта, вы можете установить библиотеку для RealtyPult напрямую из репозитория.
Обновите ваш файл composer.json (добавьте новую зависимость):
``` json
{
"require": {
"bushev/php-realtypult-partner-lib": "^1.0"
}
}
```После чего выполните установку:
`php composer.phar install`
## Как пользоваться
``` php
require_once 'realtypult-importer.php';/**
* Обработчик одного объявления
*
* Требуется реализовать алгоритм:
*
* 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) {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;
};/**
* Обработчик конца импорта
*
* Здесь нужно удалить из вашей базы данных все объявления которые отсутствовали в
* 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) {echo "Обработка XML фида завершена!\r\n";
var_dump($report);
};/**
* Обработчик ошибки обработки XML фида
*
* @param $error
*/
$onError = function ($error) {echo "Произошла ошибка " . $error . "\r\n";
$this->assertEquals('I\'m here!', 'Should not be here!');
};$options = new \stdClass();
// Ссылка на XML фид из личного кабинета партнера
$options->xmlFeedUrl = 'https://realtypult.ru/api/xml/export/partner/FORMAT/TOKEN';// Путь к файлу отчета, файл будет создаваться автоматически
$options->reportFileLocation = '/var/www/my-site/public/rm-report.xml';// Формат XML фида ('realtypult' или 'yandex')
$options->format = 'realtypult';// Функция будет вызвана для каждого объявления из XML фида
$options->onItem = $onItem;// Функция будет вызвана когда весь XML фид будет обработан
$options->onEnd = $onEnd;// Функция будет вызвана в случае непредвиденной критической ошибки
$options->onError = $onError;$importer = new \RealtyPultImporter($options);
// Запускаем импорт
$importer->run();
```Код этого примера находится [тут](examples/example.php).