這是一個第三方 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 許可證獲得許可 - 有關詳細信息,請參閱許可證文件