超級簡單、最低抽象的 MailChimp API v3 包裝器,採用 PHP 語言。
我討厭複雜的包裝。這使您可以盡可能直接地從 MailChimp API 文件獲取程式碼。
需要 PHP 5.3 和脈衝。抽像是針對黑猩猩的。
您可以使用 Composer 安裝 mailchimp-api:
composer require drewm/mailchimp-api
然後您將需要:
執行composer install
將這些依賴項新增到您的供應商目錄中
使用以下行將自動載入器新增至您的應用程式: require("vendor/autoload.php")
或者,您可以只下載MailChimp.php
檔案並手動包含它:
包括('./MailChimp.php');
如果您希望使用批次請求或 Webhook 接口,您還需要下載並包含Batch.php
或Webhook.php
檔案:
包括('./Batch.php'); 包括('./Webhook.php');
這些都是可選的。如果您不使用批次或網路鉤子,則可以跳過它們。您可以隨時回來添加它們。
首先use
類別並使用您的 API 金鑰建立一個實例
使用 DrewMMailChimpMailChimp;$MailChimp = new MailChimp('abc123abc123abc123abc123abc123-us1');
然後,列出所有郵件清單(使用get
lists
方法)
$結果 = $MailChimp->get('列表');print_r($結果);
訂閱某人到清單(透過lists/{listID}/members
方法發佈貼post
):
$list_id = 'b1234346';$result = $MailChimp->post("lists/$list_id/members", [ 'email_address' => '[email protected]', 'status' => '訂閱', ]);print_r($結果);
使用更多資訊更新清單成員(使用patch
更新):
$list_id = 'b1234346';$subscriber_hash = MailChimp::subscriberHash('[email protected]');$subscriber_hash = MailChimp::subscriberHash('[email protected]');$result = $_Chimp->patch("lists/$list_id/members/$subscrMailhash", [iber_fieldhash", [iber_fields1' > ['FNAME'=>'戴維', 'LNAME'=>'瓊斯'], '興趣' => ['2s3a384h' => true], ]);print_r($結果);
使用delete
方法刪除清單成員:
$list_id = 'b1234346';$subscriber_hash = MailChimp::subscriberHash('[email protected]');$MailChimp->delete("lists/$list_id/members/$subscriber_hash");
使用success()
方法快速測試操作是否成功:
$list_id = 'b1234346';$result = $MailChimp->post("lists/$list_id/members", [ 'email_address' => '[email protected]', 'status' => '訂閱', ]);if ($MailChimp->success()) { print_r($result); } else { echo $MailChimp->getLastError(); }
MailChimp 批次操作功能可讓您透過一次呼叫完成多個操作。一個很好的例子是將數千名成員添加到清單中 - 您可以在一個請求中執行此操作,而不是數千名。
使用 DrewMMailChimpMailChimp;使用 DrewMMailChimpBatch;$MailChimp = new MailChimp('abc123abc123abc123abc123abc123-us1');$Batch = $MailChimp->new_batch();
然後,您可以像通常使用MailChimp
物件一樣對Batch
物件發出請求。不同之處在於您需要為操作設定一個 ID 作為第一個參數,而且您不會得到回應。此 ID 用於在批次作業的組合回應中尋找該請求的結果。
$Batch->post("op1", "lists/$list_id/members", [ 'email_address' => '[email protected]', 'status' => '訂閱', ]);$Batch->post("op2", "lists/$list_id/members", [ 'email_address' => '[email protected]', 'status' => '訂閱', ]);$Batch->post("op3", "lists/$list_id/members", [ 'email_address' => '[email protected]', 'status' => '訂閱', ]);
完成該批次中應包含的所有請求後,您需要執行它。
$結果= $Batch->execute();
結果包括批次 ID。稍後,您可以檢查批次的狀態:
$MailChimp->new_batch($batch_id);$結果 = $Batch->check_status();
批次完成後,您可以從回應中給出的 URL 下載結果。在 JSON 中,每個操作的結果將由您用作請求第一個參數的 ID 作為鍵控。
注意:使用 Webhooks 功能至少需要 PHP 5.4。
MailChimp Webhooks 可讓您的程式碼收到清單和活動變更的通知。
設定 Webhook 時,您可以在伺服器上指定要傳送資料的 URL。此包裝器的 Webhook 類別可協助您以簡潔的方式擷取傳入的 Webhook。它使用訂閱模型,您的程式碼可以訂閱它想要偵聽的任何 Webhook 事件。您提供一個回呼函數,Webhook 資料將傳遞到該回呼函數。
監聽unsubscribe
webhook:
使用 DrewMMailChimpWebhook; Webhook::subscribe('取消訂閱', function($data){ print_r($data); });
乍一看,訂閱/取消訂閱看起來很混亂 - 您的程式碼正在訂閱 MailChimp unsubscribe
Webhook 事件。回調函數作為單一參數傳遞 - 一個包含 webhook 資料的關聯數組。
如果您只想捕獲所有網路鉤子並自己處理它們,您可以使用:
使用 DrewMMailChimpWebhook;$result = Webhook::receive();print_r($result);
似乎沒有任何有關 webhook 資料內容的文檔。使用 ngrok 之類的工具將 Webhooks 隧道傳輸到您的開發電腦會很有幫助 - 然後您可以使用其 Web 介面來檢查已發送的內容並在偵錯程式碼時重播傳入的 Webhook。
若要取得 HTTP 用戶端或 API 傳回的最後一個錯誤,請使用getLastError()
:
迴聲 $MailChimp->getLastError();
為了進一步調試,您可以檢查回應的標頭和正文:
print_r($MailChimp->getLastResponse());
如果您懷疑您傳送的資料格式錯誤,您可以查看包裝器傳送至 MailChimp 的內容:
print_r($MailChimp->getLastRequest());
如果您的伺服器的 CA 根憑證不是最新的,您可能會發現 SSL 驗證失敗並且沒有收到回應。修正此問題的解決方案不是停用 SSL 驗證。解決方案是更新您的憑證。如果您不能這樣做,類別文件頂部有一個選項。請不要在沒有嘗試更新您的證書的情況下就將其關閉——這是懶惰且危險的。你不是一個懶惰、危險的開發者,對嗎?
如果您對專案有進階實施問題(「如何將其新增至 WordPress」、「我有一個需要電子郵件地址的表單...」),請將它們帶到 StackOverflow 等地方。如果您認為自己發現了錯誤,或者想討論更改或改進,請隨時提出問題,我們將共同解決。
這是一個相當簡單的包裝器,但由於使用它的人的貢獻,它已經變得更好了。如果您想提出改進建議,請在提出拉取請求之前提出問題進行討論。
我們非常歡迎針對錯誤提出拉取請求 - 請在訊息中解釋您要修復的錯誤。
有少量 PHPUnit 單元測試。針對 API 的單元測試顯然有點棘手,但我歡迎對此做出任何貢獻。如果有更多的測試覆蓋率那就太好了。