นี่คือไลบรารี PHP สำหรับการโต้ตอบกับ API ของ MailChimp เวอร์ชัน 3.0
ไลบรารีนี้ถือว่ามีความเข้าใจพื้นฐานเกี่ยวกับแอปพลิเคชัน MailChimp และฟังก์ชันที่เกี่ยวข้อง
สำหรับการทำงานของผู้แต่ง:
composer require jhut89/mailchimp3php
หรือคุณสามารถเพิ่มบรรทัด need ในโครงการของคุณ composer.json
สำหรับแพ็คเกจ jhut89/mailchimp3php
จากนั้นเรียกใช้ composer update
และเพิ่มตัวโหลดอัตโนมัติให้กับโปรเจ็กต์ของคุณด้วย:
require " vendor/autoload.php " ;
จากนั้นคุณสามารถใช้คำสั่ง use เพื่อดึงคลาส Mailchimp:
use MailchimpAPI Mailchimp ;
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
หากต้องการสร้างอินสแตนซ์ คุณจะต้องมีอินสแตนซ์ใหม่ของคลาส Mailchimp
โดยมีคีย์ API ของบัญชี MailChimp ของคุณเป็นอาร์กิวเมนต์เดียว
หากคุณใช้ OAuth เพื่อรับโทเค็นการเข้าถึง ไลบรารีนี้สามารถจัดการ "แฮนด์เชค" ให้คุณได้
คุณต้องส่งผู้ใช้ไปยังแอปพลิเคชันของคุณ authorize_uri
ก่อน คุณสามารถรับ URL นี้ได้โดยเรียก Mailchimp::getAuthUrl()
แบบคงที่:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url );
อีกทางเลือกหนึ่ง หากคุณต้องการส่งข้อมูลสถานะไปพร้อมกับคำขอของคุณเพื่อให้สามารถกำหนดเส้นทางการตอบสนองการโทรกลับได้อย่างถูกต้อง คุณสามารถรวมพารามิเตอร์สถานะได้:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
// state information encoded into a string to be included in the URL, for example data encoded in a JWT token
$ state = ' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url , $ state );
จากนั้นผู้ใช้จะป้อนชื่อผู้ใช้และรหัสผ่านเพื่ออนุมัติใบสมัครของคุณและจะถูกเปลี่ยนเส้นทางไปยัง redirect_uri
ที่คุณตั้งไว้พร้อมกับ code
ด้วย code
ดังกล่าว คุณสามารถขอโทเค็นการเข้าถึงจาก mailchimp ได้แล้ว สำหรับสิ่งนี้ คุณจะต้องเรียกใช้ Mailchimp::oauthExchange()
แบบคงที่ดังนี้:
$ code = ' abc123abc123abc123abc123 ' ;
$ client_id = ' 12345676543 ' ;
$ client_secret = ' 789xyz789xyz789xyz789xyz ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: oauthExchange ( $ code , $ client_id , $ client_secret , $ redirect_url );
หากการจับมือสำเร็จ เมธอดนี้จะส่งคืนสตริงที่มีคีย์ API ของคุณดังนี้: 123abc123abc123abc123abc123abc-us0
ตอนนี้คุณสามารถใช้คีย์ API นี้เพื่อสร้างอินสแตนซ์คลาส Mailchimp
ของคุณตามที่เรามีข้างต้น
เมื่อคุณสร้างอินสแตนซ์คลาส Mailchimp
แล้ว คุณสามารถเริ่มสร้างคำขอได้ การสร้างคำขอทำได้โดยวิธี 'ผูกมัด' กับอินสแตนซ์ $mailchimp
ในกรณีส่วนใหญ่ 'chain' นี้จะลงท้ายด้วยกริยา HTTP สำหรับคำขอของคุณ
ตัวอย่างวิธีการดึงข้อมูลคอลเลกชันรายการ:
$ mailchimp
-> lists ()
-> get ();
การเรียกอินสแตนซ์สามารถทำได้โดยให้ตัวระบุเฉพาะสำหรับอินสแตนซ์ที่คุณต้องการเป็นอาร์กิวเมนต์ตามวิธีการที่เหมาะสม ตัวอย่างเช่น หากฉันต้องการดึงข้อมูลอินสแตนซ์รายการจากตัวอย่างข้างต้น ฉันจะส่ง list_id
เป็นอาร์กิวเมนต์เดียวสำหรับเมธอด lists()
แบบนี้:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> get ();
วิธีการที่ใช้ได้สำหรับแต่ละตำแหน่งในห่วงโซ่จะขึ้นอยู่กับว่าวิธีก่อนหน้าส่งคืนอะไร ตัวอย่างเช่น หากฉันต้องการเรียกข้อมูลสมาชิกจากรายการในบัญชีของฉัน ฉันจะ:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ();
โปรดสังเกตว่าฉันได้ระบุ list_id
ให้กับเมธอด lists()
เนื่องจากไม่มีทางดึงรายชื่อสมาชิกจากคอลเล็กชันรายการได้ คำขอข้างต้นจะส่งคืนอินสแตนซ์สมาชิก 10 รายการจากคอลเลกชันสมาชิกเท่านั้น นี่เป็นเพราะ API ของ MailChimp ใช้การแบ่งหน้า (จัดทำเอกสารไว้ที่นี่) ซึ่งมีค่าเริ่มต้นเป็น count=10
และ offset=0
ไลบรารีนี้อนุญาตให้คุณแก้ไขพารามิเตอร์สตริงการสืบค้นโดยส่งพารามิเตอร์เหล่านั้นเป็นอาร์กิวเมนต์ไปยังเมธอด GET()
เราทำเช่นนี้โดยจัดเตรียมอาร์เรย์ของคู่คีย์-ค่า โดยที่คีย์คือพารามิเตอร์การสืบค้นที่คุณต้องการระบุ/แก้ไข และค่าของคีย์คือค่าของพารามิเตอร์ ตามตัวอย่างหากฉันต้องการเรียกข้อมูลสมาชิก 100 รายที่สองจากรายการของฉัน ฉันสามารถ:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ([
" count " => " 100 " ,
" offset " => " 100 "
]);
นี่จะเทียบเท่ากับการส่งคำขอรับกับ:
Https://us0.api.mailchimp.com/3.0/lists/1a2b3c4d/members?count=100&offset=100
ไปอีกหน่อยเราสามารถดึงสมาชิกรายการเดียวโดยให้ members_hash
(แฮช md5 ของที่อยู่ตัวพิมพ์เล็ก) ให้กับเมธอด members()
แบบนี้:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' 8bdbf060209f35b52087992a3cbdf4d7 ' )
-> get ();
อีกทางหนึ่ง แทนที่จะระบุแฮช md5 เป็นตัวระบุให้กับฟังก์ชัน members()
คุณสามารถระบุที่อยู่อีเมลของผู้ติดต่อเป็นสตริงได้ และไลบรารีนี้จะทำการแฮชให้คุณ แบบนี้:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' [email protected] ' )
-> get ();
คุณสามารถอ่านเกี่ยวกับคำขอ
GET
ในเชิงลึกได้ที่นี่: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Get-Requests
แม้ว่าความสามารถในการดึงข้อมูลจากบัญชีของคุณจะดีมาก แต่เราก็ต้องสามารถโพสต์ข้อมูลใหม่ได้เช่นกัน ซึ่งสามารถทำได้โดยการเรียกเมธอด POST()
ที่ส่วนท้ายของเชน ตามตัวอย่างการสมัครรับที่อยู่ในรายการจะมีลักษณะดังนี้:
$ post_params = [
' email_address ' => ' [email protected] ' ,
' status ' => ' subscribed '
];
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
ในกรณีนี้ฉันจะไม่ให้ตัวระบุแก่ members()
เนื่องจากฉันต้องการโพสต์ไปยังคอลเล็กชันของมัน โปรดสังเกตด้วยว่าข้อมูลที่โพสต์เป็นอาร์เรย์ของคู่คีย์-ค่าซึ่งแสดงถึงพารามิเตอร์ที่ฉันต้องการส่งผ่านไปยัง MailChimp API ตรวจสอบให้แน่ใจว่าคุณได้ระบุฟิลด์ที่จำเป็นทั้งหมดสำหรับปลายทางที่คุณกำลังโพสต์ไป ตรวจสอบเอกสารประกอบของ MailChimp ว่ามีพารามิเตอร์ใดบ้างที่จำเป็น คุณสามารถเพิ่มพารามิเตอร์ที่ไม่จำเป็นลงในข้อมูลที่โพสต์ได้ และ MailChimp จะเพิกเฉยต่อพารามิเตอร์ที่ใช้ไม่ได้ เพื่อแสดงให้เห็นนี่คือตัวอย่างของการเพิ่มสมาชิกในรายการที่มีพารามิเตอร์ที่ไม่จำเป็น:
$ merge_values = [
" FNAME " => " John " ,
" LNAME " => " Doe "
];
$ post_params = [
" email_address " => " [email protected] " ,
" status " => " subscribed " ,
" email_type " => " html " ,
" merge_fields " => $ merge_values
]
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
คุณสามารถอ่านเกี่ยวกับคำขอ
POST
ในเชิงลึกได้ที่นี่: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Post-Requests
ไลบรารีนี้จัดการคำขอ PUT และ PATCH คล้ายกับคำขอ POST หมายความว่า PUT()
& PATCH()
ทั้งคู่ยอมรับอาร์เรย์ของคู่คีย์-ค่าที่แสดงถึงข้อมูลที่คุณต้องการแก้ไข/มอบให้กับ MailChimp ตามตัวอย่าง หากฉันกำลังแพตช์ผู้สมัครสมาชิกที่เราสมัครสมาชิกด้านบน เพื่อให้มีชื่อใหม่ มันจะมีลักษณะเช่นนี้
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> patch ([
" merge_fields " => [ " FNAME " => " Jane " ]
]);
คุณสามารถอ่านเกี่ยวกับคำขอ
PATCH
&PUT
ในเชิงลึกได้ที่นี่: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Patch-&-Put-Requests
การลบบันทึกจาก MailChimp ดำเนินการด้วยวิธี DELETE()
และสร้างขึ้นคล้ายกับคำขอ GET หากฉันต้องการลบสมาชิกข้างต้น ฉันจะ:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> delete ();
คุณสามารถอ่านเกี่ยวกับคำขอ
DELETE
ในเชิงลึกได้ที่นี่: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Delete-Requests
วิธีการตั้งชื่อสำหรับกริยา http เช่น get()
, post()
, patch()
, put()
หรือ delete()
เริ่มต้นคำขอแบบ over the wire ไปยัง API ของ MailChimp เมื่อคำขอสำเร็จแล้ว วิธีการเหล่านี้จะส่งคืนอินสแตนซ์ของ MailchimpResponse
ฉันขอแนะนำให้คุณทำความคุ้นเคยกับคลาสนี้ เนื่องจากมีตัวดัดแปลงและตัวรับจำนวนหนึ่งสำหรับการตอบกลับส่วนต่างๆ
มี getters จำนวนมากที่เราสามารถใช้เพื่อโต้ตอบกับอินสแตนซ์ MailchimpResponse
ของเรา บางส่วนที่ใช้กันทั่วไปคือ:
$ response -> deserialize (); // returns a deserialized (to php object) resource returned by API
$ response -> getHttpCode (); // returns an integer representation of the HTTP response code
$ response -> getHeaders (); // returns response headers as an array of key => value pairs
$ response -> getBody (); // return the raw text body of the response
ตามตัวอย่าง หากฉันมีคีย์ API แต่ต้องการให้อีเมลติดต่อเชื่อมโยงกับบัญชี:
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
$ account = $ mailchimp
-> account ()
-> get ()
$ contact_email = $ account
-> deserialize ()
->email
print $ contact_email ; // outputs something like "[email protected]"
คุณสามารถอ่านเกี่ยวกับวิธีการทำงานกับคำตอบเชิงลึกได้ที่นี่: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Handling-A-Response
mailchimp()
|
|----account()
|
|----apps()
|
|----automations()
| |
| |----removedSubscribers()
| |----emails()
| |
| |---queue()*
| |---pauseAll()*
| |---startAll()*
|
|----batches()
|
|----batchWebhooks()
|
|----campaignFolders()
|
|----campaigns()
| |
| |----cancel()*
| |----pause()*
| |----replicate()*
| |----resume()*
| |----scedule()*
| |----send()*
| |----test()*
| |----unschedule()*
| |----checklist()
| |----feedback()
| |----content()
|
|----connectedSites()
| |
| |----verifyScriptInstallation()*
|
|----conversations()
| |
| |----messages()
|
|----ecommStores()
| |
| |----customers()
| |----products()
| | |
| | |----variants()
| | |----images()
| |
| |----promoRules()
| | |
| | |----promoCodes()
| |
| |----orders()
| | |
| | |----lines()
| |
| |----carts()
| |
| |----lines()
|
|----facebookAds()
|
|----fileManagerFiles()
|
|----fileManagerFolders()
|
|----googleAds()
|
|----landingPages()
| |
| |----publish()*
| |----unpublish()*
| |----content()
|
|----lists()
| |
| |----batchSubscribe()*
| |----webhooks()
| |----signupForms()
| |----mergeFields()
| |----growthHistory()
| |----clients()
| |----activity()
| |----abuseReports()
| |----segments()
| | |
| | |----batch()*
| | |----members()
| |
| |----members()
| | |
| | |---notes()
| | |---goals()
| | |---activity()
| | |---tags()
| |
| |----interestCategories()
| |
| |----interests()
|
|----ping()
|
|----reports()
| |
| |----unsubscribes()
| |----subReports()
| |----sentTo()
| |----locations()
| |----emailActivity()
| |----googleAnalytics()
| |----openDetails()
| |----eepurl()
| |----domainPerformance()
| |----advice()
| |----abuse()
| |----clickReports()
| |
| |----members()
|
|----searchCampaigns()
|
|----searchMembers()
|
|----templateFolders()
|
|----templates()
| |
| |----defaultContent()
|
|----verifiedDomains()
|
|----verify()
*โปรดดูเอกสาร API ของ MailChimp เพื่อดูว่าคำกริยาใดบ้างที่เหมาะสม
** วิธีการที่มีเครื่องหมาย *
ทำการร้องขอเครือข่าย
** โปรดดูการอัปเดตและอย่าลังเลที่จะขอ Fork หรือ Pull Request ตรวจสอบ Wiki เพื่อดูข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับการบริจาค