这是一个第三方 PHP 库,旨在简化 Vebra XML Web 服务的使用。
API 的当前版本是版本 9。
注意:该库与 Vebra 没有任何关联。
有关更多信息,请参阅用户指南或 Vebra API 版本 9 架构。
PHP 5.3+
Buzz 轻量级 HTTP 请求库。
如果您正在启动一个新项目,或者您现有的项目不使用 Composer,请下载并安装它:
curl -s http://getcomposer.org/installer | php
创建一个新的composer.json 文件并以此库作为依赖项:
{
"require" : {
"ydd/vebra" : " *@dev "
}
}
如果您的项目已经在使用 Composer,则编辑项目中的composer.json 文件并将此库添加为依赖项,如上所示。
使用 Composer 安装项目依赖项:
php composer.phar install
在您的脚本或引导代码中需要 Composer 自动加载器:
<?php
require ' vendor/autoload.php ' ;
有关作曲家的更多信息,请参阅作曲家网站。
向 Web 服务发出的请求必须经过身份验证。最初,这是使用您的用户名和密码完成的,网络服务返回一个授权令牌,必须存储该令牌并将其用于所有后续请求。如果您未能存储令牌,则在身份验证令牌过期之前,您将无法向 Web 服务发出任何进一步的请求。身份验证令牌的有效期约为一小时,如果您使用过期的授权令牌发出请求,Web 服务将返回 401(未授权)标头。在这种情况下,API 将自动重新进行身份验证并接收新的身份验证令牌。
为了启用此行为,该库包含一个默认令牌存储类,它将从本地文件系统上的文件保存和加载令牌。如果您想以不同的方式存储令牌(例如在数据库中),那么您可以提供自己的令牌存储类,该存储类必须实现 TokenStorageInterface。
要创建 YDDVebraTokenStorageFile 的实例,请将用户名和路径传递到要用于存储令牌的目录(该目录应该是可写的)。为了支持多个用户,每个用户都有自己的令牌文件(源自用户名的哈希值)。
$tokenStorage = new YDDVebraTokenStorageFile('username', __DIR__.'/tokens/');
这个轻量级 HTTP 请求库用于向 Web 服务发送 HTTP 请求或从 Web 服务返回 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 许可证获得许可 - 有关详细信息,请参阅许可证文件