ไลบรารี PHP เพื่อดำเนินการค้นหาผลิตภัณฑ์และค้นหาโดยใช้ AMICOND PRO ต่อ API
ไลบรารีนี้ต้องการส่วนขยาย SimpleXML และ Curl ที่จะติดตั้งและใช้ PHP 7+ การติดตั้งเป็นเรื่องง่ายโดยใช้นักแต่งเพลง:
composer require marcl/amazonproductapiนอกจากนี้ยังสมมติว่าคุณมีความรู้พื้นฐานเกี่ยวกับ API ผลิตภัณฑ์ของ Amazon และได้ตั้งค่าบัญชี Amazon Associate ดู: การตั้งค่า API ผลิตภัณฑ์ Amazon
คุณจะต้องใช้คีย์ AWS, Secret Key และ Associate Tag ตรวจสอบให้แน่ใจว่าคุณรักษาความปลอดภัยเหล่านี้ไว้!
ฉันได้เพิ่มตัวอย่างง่ายๆใน examples.php . php ในการเรียกใช้พวกเขาสร้างไฟล์ที่เรียกว่า secretKeys.php ที่มีปุ่มลับของคุณ:
<?php
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
?>จากนั้นเรียกใช้ตัวอย่างด้วย:
php examples.phpรวมไลบรารีในรหัสของคุณโดยใช้นักแต่งเพลง AutoLoader และสร้าง amazonurlbuilder ด้วยข้อมูลประจำตัวของคุณ
require ( ' vendor/autoload.php ' );
use MarcL AmazonAPI ;
use MarcL AmazonUrlBuilder ;
// Keep these safe
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
// Setup a new instance of the AmazonUrlBuilder with your keys
$ urlBuilder = new AmazonUrlBuilder (
$ keyId ,
$ secretKey ,
$ associateId ,
' uk '
);
// Setup a new instance of the AmazonAPI and define the type of response
$ amazonAPI = new AmazonAPI ( $ urlBuilder , ' simple ' );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' price ' );หมายเหตุ: รักษาคีย์ Amazon ของคุณให้ปลอดภัย ใช้ตัวแปรสภาพแวดล้อมหรือรวมจากไฟล์ที่คุณไม่ได้ตรวจสอบ GitHub
ห้องสมุดนี้รองรับสถานที่โฆษณา API โฆษณาทั้งหมดและคุณสามารถตั้งค่าได้ในขณะที่คุณสร้างคลาส Amazonurlbuilder ด้วยกุญแจของคุณ
ในเวลานี้นี่คือสถานที่ที่รองรับปัจจุบัน:
ในการค้นหารายการให้ใช้เมธอด ItemSearch() :
// Search for harry potter items in all categories
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
// Search for harry potter items in Books category only
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' ); โดยค่าเริ่มต้น ItemSearch() จะค้นหาตามจุดเด่น หากคุณต้องการจัดเรียงตามหมวดหมู่อื่นให้ผ่านพารามิเตอร์ที่ 3 ด้วยชื่อของหมวดหมู่ที่คุณต้องการเรียงลำดับ สิ่งเหล่านี้แตกต่างกันตามประเภทหมวดหมู่ แต่ทั้งสองคุณอาจต้องใช้คือ price (เรียงลำดับตามราคาต่ำถึงสูง) หรือ -price (เรียงลำดับตามราคาสูงถึงต่ำ) ดูค่าการเรียงลำดับรายการสำหรับรายละเอียดเพิ่มเติม
// Search for harry potter items in Books category, sort by low to high
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' price ' );
// Search for harry potter items in Books category, sort by high to low
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' -price ' ); ในการกำหนดหมวดหมู่ที่ถูกต้องสำหรับการค้นหาการโทร GetValidSearchNames() :
// Get an array of valid search categories we can use
$ searchCategories = $ amazonAPI -> GetValidSearchNames (); ในการค้นหาผลิตภัณฑ์โดยใช้ผลิตภัณฑ์ asin หมายเลขใช้ ItemLookup() :
// Retrieve specific item by id
$ items = $ amazonAPI -> ItemLookUp ( ' B003U6I396 ' );
// Retrieve a list of items by ids
$ asinIds = array ( ' B003U6I396 ' , ' B003U6I397 ' , ' B003U6I398 ' );
$ items = $ amazonAPI -> ItemLookUp ( $ asinIds );โดยค่าเริ่มต้นข้อมูลจะถูกส่งกลับเป็นโหนด SimpleXML อย่างไรก็ตามคุณสามารถขอข้อมูลที่จะแปลงแตกต่างกันขึ้นอยู่กับกรณีการใช้งานของคุณสำหรับ API ผ่านประเภทเมื่ออินสแตนซ์คลาส Amazonapi ดังนี้:
// Default return type is XML
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );สิ่งนี้จะส่งออก:
class SimpleXMLElement#2 (2) {
public $OperationRequest = >
class SimpleXMLElement#3 (3) {
public $RequestId = >
string(36) " de58449e-0c1a-47ac-9823-00fd049c52df "
public $Arguments = >
class SimpleXMLElement#5 (1) {
public $Argument = >
array(11) {
... // Return simplified data
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder , ' simple ' );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );สิ่งนี้จะส่งคืนเวอร์ชันที่เรียบง่ายของแต่ละรายการด้วยข้อมูลน้อยที่สุด แต่เพียงพอสำหรับกรณีการใช้งานง่าย ๆ
array(10) {
[0] =>
array(8) {
'asin' =>
string(10) "B00543R3WG"
'url' =>
string(212) "http://www.amazon.co.uk/Harry-Potter-Complete-8-Film-Collection/dp/B00543R3WG%3FSubscriptionId%3D1BM0B8TXM1YSZ1M0XDR2%26tag%3Ddjcr-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00543R3WG"
'rrp' =>
double(44.99)
'title' =>
string(58) "Harry Potter - The Complete 8-Film Collection [DVD] [2011]"
'lowestPrice' =>
double(23.4)
'largeImage' =>
string(53) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL.jpg"
'mediumImage' =>
string(61) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL._SL160_.jpg"
'smallImage' =>
string(60) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL._SL75_.jpg"
}
[1] =>
array(8) {
'asin' =>
string(10) "0747558191"
'url' =>
string(212) "http://www.amazon.co.uk/Harry-Potter-Philosophers-Stone-Rowling/dp/0747558191%3FSubscriptionId%3D1BM0B8TXM1YSZ1M0XDR2%26tag%3Ddjcr-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0747558191"
'rrp' =>
double(6.99)
'title' =>
string(40) "Harry Potter and the Philosopher's Stone"
…
ประเภทการแปลงข้อมูลที่แตกต่างกันถูกกำหนดดังนี้ อย่าลังเลที่จะยกปัญหาหากคุณต้องการให้ข้อมูลเปลี่ยนเป็นประเภทใหม่
ห้องสมุดนี้ใช้รหัสตามการรับรองความถูกต้องของ AWS API สำหรับ PHP โดย David Drake แต่ได้รับการเขียนใหม่เป็นส่วนใหญ่
ดูใบอนุญาต