Ini adalah perpustakaan PHP untuk berinteraksi dengan API MailChimp versi 3.0
Pustaka ini mengasumsikan pemahaman dasar tentang aplikasi MailChimp dan fungsi terkaitnya.
Untuk menjalankan Komposer:
composer require jhut89/mailchimp3php
Alternatifnya, Anda dapat menambahkan baris require ke proyek composer.json
untuk paket jhut89/mailchimp3php
.
Kemudian jalankan composer update
dan tambahkan composer autoloader ke proyek Anda dengan:
require " vendor/autoload.php " ;
Anda kemudian dapat menggunakan pernyataan use untuk menarik kelas Mailchimp:
use MailchimpAPI Mailchimp ;
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
Untuk membuat instance, Anda memerlukan instance baru kelas Mailchimp
dengan kunci API akun MailChimp Anda sebagai satu-satunya argumennya.
Jika Anda menggunakan OAuth untuk mendapatkan token akses, perpustakaan ini dapat menangani "jabat tangan" untuk Anda.
Anda harus terlebih dahulu mengirim pengguna ke aplikasi Anda authorize_uri
. Anda bisa mendapatkan url ini dengan memanggil Mailchimp::getAuthUrl()
secara statis:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url );
Secara opsional, jika Anda perlu meneruskan informasi status bersama dengan permintaan Anda sehingga respons callback dapat dirutekan dengan benar, Anda dapat menyertakan parameter status:
$ 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 );
Dari sana pengguna akan memasukkan nama pengguna dan kata sandinya untuk menyetujui permohonan Anda dan akan diarahkan ke redirect_uri
yang Anda tetapkan bersama dengan code
.
Dengan code
tersebut Anda sekarang dapat meminta token akses dari mailchimp. Untuk ini, Anda perlu memanggil metode Mailchimp::oauthExchange()
secara statis seperti ini:
$ 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 );
Jika jabat tangan berhasil, maka metode ini akan mengembalikan string yang berisi kunci API Anda seperti ini: 123abc123abc123abc123abc123abc-us0
. Kunci API ini sekarang dapat digunakan untuk membuat instance kelas Mailchimp
Anda seperti yang kami lakukan di atas.
Setelah Anda membuat instance kelas Mailchimp
, Anda dapat mulai membuat permintaan. Pembuatan permintaan dilakukan dengan metode 'merantai' ke instance $mailchimp
. Dalam kebanyakan kasus, 'rantai' ini akan diakhiri dengan kata kerja HTTP untuk permintaan Anda.
Contoh cara mengambil koleksi daftar:
$ mailchimp
-> lists ()
-> get ();
Mengambil sebuah instance dapat dilakukan dengan memberikan pengenal unik untuk instance yang Anda inginkan sebagai argumen pada metode yang sesuai. Misalnya jika saya ingin mengambil contoh daftar dari contoh di atas, saya cukup meneruskan list_id
, sebagai satu-satunya argumen untuk metode lists()
. Seperti ini:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> get ();
Metode yang tersedia untuk setiap posisi dalam rantai bergantung pada metode sebelumnya yang dikembalikan. Misalnya jika saya ingin mengambil pelanggan dari daftar di akun saya, saya akan:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ();
Perhatikan bahwa saya memberikan list_id
ke metode lists()
, karena tidak ada cara untuk mengambil daftar pelanggan dari koleksi daftar. Namun permintaan di atas hanya akan mengembalikan 10 instance pelanggan dari koleksi anggota. Ini karena API MailChimp menggunakan penomoran halaman (didokumentasikan DI SINI) yang defaultnya adalah count=10
dan offset=0
. Pustaka ini memungkinkan Anda mengubah parameter string kueri dengan meneruskannya sebagai argumen ke metode GET()
. Kami melakukan ini dengan menyediakan array pasangan kunci-nilai di mana kunci adalah parameter kueri yang ingin Anda berikan/ubah dan nilainya adalah nilai parameter. Sebagai contoh jika saya ingin mengambil 100 pelanggan kedua dari daftar saya, saya dapat:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ([
" count " => " 100 " ,
" offset " => " 100 "
]);
Ini sama dengan membuat permintaan get terhadap:
Https://us0.api.mailchimp.com/3.0/lists/1a2b3c4d/members?count=100&offset=100
Lebih jauh lagi kita dapat mengambil satu anggota daftar dengan memberikan members_hash
(hash md5 alamat huruf kecil) ke metode members()
. Seperti ini:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' 8bdbf060209f35b52087992a3cbdf4d7 ' )
-> get ();
Alternatifnya, sebagai pengganti hash md5 sebagai pengidentifikasi fungsi members()
Anda dapat memberikan alamat email kontak sebagai string dan perpustakaan ini akan melakukan hashing untuk Anda. Seperti ini:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' [email protected] ' )
-> get ();
Anda dapat membaca tentang permintaan
GET
secara mendalam di sini: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Get-Requests
Meskipun bisa mengambil data dari akun Anda adalah hal yang bagus, kami juga harus bisa memposting data baru. Hal ini dapat dilakukan dengan memanggil metode POST()
di akhir rantai. Sebagai contoh, memasukkan alamat ke daftar akan terlihat seperti ini:
$ post_params = [
' email_address ' => ' [email protected] ' ,
' status ' => ' subscribed '
];
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
Dalam hal ini saya tidak akan memberikan pengenal kepada members()
karena saya ingin memposting ke koleksinya. Perhatikan juga bahwa data postingan adalah array pasangan nilai kunci yang mewakili parameter apa yang ingin saya teruskan ke API MailChimp. Pastikan Anda menyediakan semua bidang yang wajib diisi untuk titik akhir tujuan pengeposan Anda. Periksa dokumentasi MailChimp untuk mengetahui parameter apa yang diperlukan. Parameter yang tidak diperlukan cukup ditambahkan ke data kiriman, dan MailChimp akan mengabaikan parameter apa pun yang tidak dapat digunakan. Sebagai ilustrasi, berikut adalah contoh menambahkan pelanggan ke daftar dengan beberapa parameter yang tidak diperlukan:
$ 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 );
Anda dapat membaca tentang permintaan
POST
secara mendalam di sini: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Post-Requests
Pustaka ini menangani permintaan PUT dan PATCH serupa dengan permintaan POST. Artinya PUT()
& PATCH()
keduanya menerima array pasangan nilai kunci yang mewakili data yang ingin Anda ubah/berikan ke MailChimp. Sebagai contoh jika saya melakukan patch pada subscriber yang kita langgani di atas, untuk memiliki nama depan yang baru, tampilannya akan seperti ini.
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> patch ([
" merge_fields " => [ " FNAME " => " Jane " ]
]);
Anda dapat membaca tentang permintaan
PATCH
&PUT
secara mendalam di sini: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Patch-&-Put-Requests
Menghapus catatan dari MailChimp dilakukan dengan metode DELETE()
dan dibuat mirip dengan permintaan GET. Jika saya ingin menghapus pelanggan di atas, saya akan:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> delete ();
Anda dapat membaca tentang permintaan
DELETE
secara mendalam di sini: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Delete-Requests
Metode yang diberi nama untuk kata kerja http seperti get()
, post()
, patch()
, put()
, atau delete()
memulai permintaan melalui kabel ke API MailChimp Jika permintaan berhasil, metode ini akan mengembalikan instance MailchimpResponse
. Saya sarankan Anda membiasakan diri dengan kelas ini karena ada sejumlah pengubah dan pengambil untuk respons yang berbeda.
Ada sejumlah pengambil yang dapat kita gunakan untuk berinteraksi dengan bagian dari instance MailchimpResponse
kita. Beberapa yang lebih umum digunakan adalah:
$ 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
Sebagai contoh, jika saya memiliki kunci API tetapi ingin email kontak dikaitkan dengan akunnya:
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
$ account = $ mailchimp
-> account ()
-> get ()
$ contact_email = $ account
-> deserialize ()
->email
print $ contact_email ; // outputs something like "[email protected]"
Anda dapat membaca tentang cara bekerja dengan respons secara mendalam di sini: 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()
*Silakan lihat Dokumentasi API MailChimp untuk mengetahui kata kerja apa yang sesuai di mana.
** Metode yang ditandai dengan *
membuat permintaan jaringan
**Harap perhatikan pembaruannya, dan jangan ragu untuk Permintaan Fork atau Tarik. Kunjungi Wiki untuk informasi lebih lanjut tentang berkontribusi.