ĐÃ CHỈNH SỬA:
Kể từ khi đăng câu trả lời này, MailChimp đã phát hành phiên bản 2 & 3 của API của họ. Phiên bản 3 sẽ là phiên bản được hỗ trợ duy nhất bắt đầu từ năm 2017. Ngay sau khi tôi có cơ hội kiểm tra nó, tôi sẽ cập nhật câu trả lời này cho phiên bản API 3.
API MailChimp v3.0
Theo thông báo ở đầu trang này , tất cả các phiên bản trước của API sẽ không được hỗ trợ sau năm 2016.
Giải pháp của tôi sử dụng PHP nền để xử lý API và jQuery để tạo điều kiện cho Ajax.
1) Tải xuống trình bao bọc PHP hỗ trợ API v3.0. Khi viết bài này, không có tài liệu chính thức nào được liệt kê trong tài liệu MailChimp mới nhất hỗ trợ v3.0, nhưng một số tài liệu được liệt kê trên GitHub, vì vậy tôi đã chọn tài liệu này .
2) Tạo tệp PHP sau store-address.php
, sử dụng khóa API và ID danh sách của riêng bạn, sau đó đặt nó vào cùng thư mục với trình bao bọc từ bước một. Hãy nhớ làm theo tài liệu cho trình bao bọc của bạn, nhưng tất cả chúng đều có vẻ khá giống với tài liệu này.
<?php
include('MailChimp.php');
use \DrewM\MailChimp\MailChimp;
function storeAddress() {
$key = "xxxxxxxxxxxxxxx-us1";
$list_id = "xxxxxx";
$merge_vars = array(
'FNAME' => $_POST['fname'],
'LNAME' => $_POST['lname']
);
$mc = new MailChimp($key);
$result = $mc->post('/lists/'.$list_id.'/members', array(
'email_address' => $_POST['email'],
'merge_fields' => $merge_vars,
'status' => 'pending'
)
);
return json_encode($result);
}
if ($_POST['ajax']) {
echo storeAddress();
} else {
echo 'Method not allowed - please ensure JavaScript is enabled in this browser';
}
3) Tạo biểu mẫu HTML / CSS / JavaScript (jQuery) của bạn ( Nó không bắt buộc phải ở trên trang PHP và khách truy cập sẽ không bao giờ thấy PHP đang được sử dụng trong nền. )
Phản hồi ở dạng JSON nên bạn sẽ phải xử lý chính xác.
Đây là index.html
tệp của tôi trông như thế nào:
<form id="signup" action="index.html" method="get">
First Name: <input type="text" name="fname" id="fname" />
Last Name: <input type="text" name="lname" id="lname" />
email Address (required): <input type="email" name="email" id="email" />
<input type="submit" id="SendButton" name="submit" value="Submit" />
</form>
<div id="message"></div>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#signup').submit(function() {
$("#message").html("Adding your email address...");
$.ajax({
url: 'inc/store-address.php',
type: 'POST',
data: $('#signup').serialize() + '&ajax=true',
success: function(msg) {
var message = $.parseJSON(msg),
result = '';
if (message.status === 'pending') {
result = 'Success! Please click the confirmation link that will be emailed to you shortly.';
} else {
result = 'Error: ' + message.detail;
}
$('#message').html(result);
}
});
return false;
});
});
</script>
API MailChimp phiên bản 1:
( câu trả lời ban đầu )
Sau khi tìm hiểu một lúc, tôi tìm thấy một trang web sử dụng ví dụ PHP với jQuery. Từ đó, tôi đã có thể tạo một trang HTML đơn giản với jQuery có chứa biểu mẫu đăng ký cơ bản. Các tệp PHP được "ẩn" trong nền mà người dùng không bao giờ nhìn thấy chúng nhưng jQuery vẫn có thể truy cập và sử dụng.
1) Tải xuống ví dụ jQuery PHP 5 tại đây ... ( CHỈNH SỬA : các liên kết đã chết. Tuy nhiên, phần quan trọng duy nhất là trình bao bọc API chính thức cho PHP có sẵn TẠI ĐÂY .)
http://apidocs.mailchimp.com/downloads/mcapi-simple-subscribe-jquery.zip
Nếu bạn chỉ có PHP 4, chỉ cần tải xuống phiên bản 1.2 của MCAPI và thay thế MCAPI.class.php
tệp tương ứng ở trên.
http://apidocs.mailchimp.com/downloads/mailchimp-api-class-1-2.zip
2) Thực hiện theo các hướng dẫn trong tệp Readme bằng cách thêm khóa API và ID danh sách của bạn vào store-address.php
tệp tại các vị trí thích hợp.
3) Bạn cũng có thể muốn thu thập tên người dùng và / hoặc thông tin khác. Bạn phải thêm một mảng vào store-address.php
tệp bằng các Biến Hợp nhất tương ứng.
Đây là store-address.php
tệp của tôi trông giống như thế nào, nơi tôi cũng thu thập tên, họ và loại email:
<?php
function storeAddress() {
require_once('MCAPI.class.php');
$api = new MCAPI('123456789-us2');
$merge_vars = Array(
'EMAIL' => $_GET['email'],
'FNAME' => $_GET['fname'],
'LNAME' => $_GET['lname']
);
$list_id = "123456a";
if ($api->listSubscribe($list_id, $_GET['email'], $merge_vars , $_GET['emailtype'])) {
return 'Success! Check your inbox or spam folder for a message containing a confirmation link.';
} else {
return '<b>Error:</b> ' . $api->errorMessage;
}
}
if($_GET['ajax']) {
echo storeAddress();
}
4) Tạo biểu mẫu HTML / CSS / jQuery của bạn. Nó không bắt buộc phải ở trên một trang PHP.
Đây là index.html
tệp của tôi trông như thế nào:
<form id="signup" action="index.html" method="get">
First Name: <input type="text" name="fname" id="fname" />
Last Name: <input type="text" name="lname" id="lname" />
email Address (required): <input type="email" name="email" id="email" />
HTML: <input type="radio" name="emailtype" value="html" checked="checked" />
Text: <input type="radio" name="emailtype" value="text" />
<input type="submit" id="SendButton" name="submit" value="Submit" />
</form>
<div id="message"></div>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#signup').submit(function() {
$("#message").html("Adding your email address...");
$.ajax({
url: 'inc/store-address.php',
data: $('#signup').serialize() + '&ajax=true',
success: function(msg) {
$('#message').html(msg);
}
});
return false;
});
});
</script>
Các mảnh bắt buộc ...
index.html được xây dựng như trên hoặc tương tự. Với jQuery, sự xuất hiện và các tùy chọn là vô tận.
Tệp store-address.php được tải xuống như một phần của các ví dụ PHP trên trang Mailchimp và được sửa đổi với API KEY và ID LIST của bạn . Bạn cần thêm các trường tùy chọn khác của mình vào mảng.
Tệp MCAPI.class.php tải xuống từ trang Mailchimp (phiên bản 1.3 cho PHP 5 hoặc phiên bản 1.2 cho PHP 4). Đặt nó trong cùng thư mục với store-address.php của bạn hoặc bạn phải cập nhật đường dẫn url trong store-address.php để nó có thể tìm thấy nó.