นี่คือไลบรารี PHP บุคคลที่สามซึ่งมีจุดมุ่งหมายเพื่อลดความซับซ้อนของการใช้บริการเว็บ Vebra XML
API เวอร์ชันปัจจุบันคือเวอร์ชัน 9
หมายเหตุ: ห้องสมุดนี้ไม่มีส่วนเกี่ยวข้องกับ Vebra แต่อย่างใด
ดูคู่มือผู้ใช้หรือสคีมา Vebra API เวอร์ชัน 9 สำหรับข้อมูลเพิ่มเติม
PHP 5.3+
ไลบรารีคำขอ HTTP แบบน้ำหนักเบาของ Buzz
หากคุณกำลังเริ่มโปรเจ็กต์ใหม่ หรือหากโปรเจ็กต์ที่มีอยู่ของคุณไม่ได้ใช้ผู้แต่ง ให้ดาวน์โหลดและติดตั้ง:
curl -s http://getcomposer.org/installer | php
สร้างไฟล์ composer.json ใหม่โดยมีไลบรารีนี้เป็นสิ่งอ้างอิง:
{
"require" : {
"ydd/vebra" : " *@dev "
}
}
หากโปรเจ็กต์ของคุณใช้ผู้แต่งอยู่แล้ว ให้แก้ไขไฟล์ composer.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 เพื่อสร้างวัตถุตอบกลับ)
ตอนนี้เรามีพารามิเตอร์และออบเจ็กต์ที่จำเป็นแล้ว เราสามารถสร้างอินสแตนซ์ของ 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());
}
วัตถุคุณสมบัติที่ส่งคืนมี accessors สำหรับแต่ละคุณสมบัติ:
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 - ดูรายละเอียดในไฟล์ใบอนุญาต