Это сторонняя PHP-библиотека, цель которой — упростить использование веб-сервиса Vebra XML.
Текущая версия API — версия 9.
NB: Эта библиотека никак не связана с Vebra.
Дополнительную информацию см. в Руководстве пользователя или в схеме Vebra API версии 9.
PHP 5.3+
Облегченная библиотека HTTP-запросов Buzz.
Если вы начинаете новый проект или ваш существующий проект не использует композитор, загрузите и установите его:
curl -s http://getcomposer.org/installer | php
Создайте новый файл композитора.json с этой библиотекой в качестве зависимости:
{
"require" : {
"ydd/vebra" : " *@dev "
}
}
Если ваш проект уже использует композитор, отредактируйте файл композитора.json в своем проекте и добавьте эту библиотеку в качестве зависимости, как показано выше.
Установите зависимости вашего проекта с помощью композитора:
php composer.phar install
Требуйте автозагрузчик композитора в вашем скрипте или загрузочном коде:
<?php
require ' vendor/autoload.php ' ;
Для получения дополнительной информации о композиторе посетите веб-сайт композитора.
Запросы, сделанные к веб-сервису, должны быть аутентифицированы. Первоначально это делается с использованием вашего имени пользователя и пароля, и веб-сервис возвращает токен авторизации, который необходимо сохранить и использовать для всех последующих запросов. Если вам не удастся сохранить токен, вы не сможете делать дальнейшие запросы к веб-сервису до тех пор, пока не истечет срок действия токена аутентификации. Токен аутентификации действителен около часа, и веб-служба вернет заголовок 401 (не авторизовано), если вы сделаете запрос с токеном авторизации с истекшим сроком действия. В этом случае API автоматически повторит аутентификацию и получит новый токен аутентификации.
Чтобы обеспечить такое поведение, в библиотеку включен класс хранения токенов по умолчанию, который будет сохранять и загружать токен из файла в локальной файловой системе. Если вы хотите хранить токен по-другому (например, в базе данных), вы можете предоставить свой собственный класс хранения токенов, который должен реализовывать TokenStorageInterface.
Чтобы создать экземпляр YDDVebraTokenStorageFile, вы передаете имя пользователя и путь к каталогу, который вы хотите использовать для хранения токенов (который должен быть доступен для записи). Для поддержки нескольких пользователей у каждого пользователя есть собственный файл токена (полученный из хеша имени пользователя).
$tokenStorage = new YDDVebraTokenStorageFile('username', __DIR__.'/tokens/');
Эта облегченная библиотека HTTP-запросов используется для отправки HTTP-запросов и возврата HTTP-ответов из веб-службы. У Buzz есть несколько клиентов на выбор (FileGetContents/Curl), и в будущем могут быть добавлены другие. Вам необходимо создать экземпляр клиента Buzz, который вы хотите использовать, и экземпляр BuzzMessageFactory (используемый API для создания объекта Response).
Теперь, когда у нас есть необходимые параметры и объекты, мы можем создать экземпляр API:
use YDDVebraAPI as VebraAPI;
use YDDVebraTokenStorageFile as TokenStorageFile;
use BuzzClientCurl as BuzzClientCurl;
use BuzzMessageFactoryFactory as BuzzMessageFactory;
$api = new VebraAPI(
'datafeedid',
'username',
'password',
new TokenStorageFile('username', __DIR__.'/tokens/'),
new BuzzClientCurl(),
new BuzzMessageFactory()
);
Получите все ветки (как повторяемую коллекцию объектов сводки ветвей):
$branchSummaries = $api->getBranches();
Перебирайте объекты сводки ветвей и извлекайте объекты ветвей для каждого из них:
foreach ($branchSummaries as $branchSummary) {
$branch = $api->getBranch($branchSummary->getClientId());
}
Возвращенный объект ветки имеет средства доступа для каждого из свойств:
echo $branch->getName();
Получите свойства для данной ветки (как повторяемую коллекцию объектов сводки свойств):
$propertySummaries = $api->getPropertyList($branch->getClientId());
Перейдите по объектам сводки свойств и извлеките объекты свойств для каждого из них:
foreach ($propertySummaries as $propertySummary) {
$property = $api->getProperty($branch->getClientId(), $propertySummary->getPropId());
}
Возвращенный объект свойства имеет методы доступа для каждого из свойств:
echo $property->getAddress();
Получить свойства, которые изменились с определенной даты:
$properties = $api->getChangedProperties(new DateTime('2012-01-01'));
Получить файлы, которые изменились с определенной даты:
$files = $api->getChangedFiles(new DateTime('2012-01-01'));
Дэймон Джонс - [email protected]
Мэтью Дэвис [email protected]
Vebra PHP API Wrapper лицензируется по лицензии MIT — подробности см. в файле ЛИЦЕНЗИИ.