2012-01-06 28 views
15

Tôi hiện đang sử dụng API MailChimp cho PHP, phiên bản 1.3.1 (http://apidocs.mailchimp.com/api/downloads/#php)MailChimp API PHP - Add to Interest Group

tôi đã thiết lập một danh sách trong MailChimp, và muốn để tự động thêm vào:

  1. thuê bao vào danh sách (thực hiện: $objMailChimp->listBatchSubscribe($strMailingListID, ...))
  2. lãi nhóm (thực hiện: $objMailChimp->listInterestGroupingAdd($strMailingListID, ...))
  3. nhóm lợi ích vào những nhóm (thực hiện: $objMailChimp->listInterestGroupAdd($strMailingListID, ...))
  4. 0.123.
  5. Subscribers giao cho nhóm có liên quan (không thực hiện)

API (http://apidocs.mailchimp.com/api/1.3/#listrelated) có phần không rõ ràng về cách thêm một thuê bao cho một nhóm lợi ích - không ai ở đây có bất kỳ ý tưởng?

Trả lời

4

Đối với MailChimp API v3

Tính từ v3, 'các nhóm' đã thay đổi thành 'sở thích'.

Bạn phải tìm hiểu ID của nhóm (sở thích) mà bạn muốn thêm vào. Thật không may, điều này không thể tìm thấy ở bất cứ đâu trên bảng điều khiển MailChimp.

Cách dễ nhất để tìm hiểu ID 'quan tâm' (thay vì tạo ra một kịch bản) là để đi đến các MailChimp playground và sau đó, sau khi vào trong khóa API của bạn, đường tới ...

danh sách > danh sách trong câu hỏi> lãi suất danh mục (trong menu thả xuống tiểu nguồn lực)

sau đó ...

lợi ích (trong sub-nguồn lực thả xuống) cho loại sở thích

sau đó ...

Bấm thông qua sự quan tâm và tham khảo các trường 'id', bỏ qua các lĩnh vực ID khác

HOẶC

danh sách> các danh sách được đề cập> thành viên (trong menu thả xuống tài nguyên phụ)

sau đó ...

tải (trong các hành động thả xuống) cho bất kỳ thành viên

hay

Tạo viên (nút)

Trang sẽ được tải chi tiết của thành viên. Cuộn xuống cho đến khi bạn thấy mảng/đối tượng 'sở thích'. Ở đó bạn sẽ thấy các ID. Lưu ý rằng chúng có thể được đặt thành true hoặc false.

Bạn sẽ phải tìm ra ID nào liên quan đến 'nhóm'/'sở thích' bằng cách thực hiện phương pháp trước đó hoặc thực hiện cuộc gọi, sau đó xem chi tiết của thành viên qua bảng điều khiển MailChimp của bạn.


Vì vậy, khi nói đến thực sự làm cho POST cuộc gọi ('thành viên' tạo), bạn sẽ muốn một cái gì đó trên dòng ...

{ 
    "email_address":"[email protected]", 
    "status":"subscribed", 
    "interests": { 
    "b8a9d7cbf6": true, 
    "5998e44916": false 
    }, 
# ADDITIONAL FIELDS, IF REQUIRED... 
    "merge_fields":{ 
    "FNAME": "foo bar", 
    "LNAME": "foo bar", 
    "MERGE3": "foo bar", 
    "MERGE4": "foo bar" 
    } 
} 

Một PUT cuộc gọi ('thành viên' chỉnh sửa) ví dụ ...

{ 
    "interests": { 
    "b8a9d7cbf6": false, 
    "5998e44916": true 
    } 
} 

Dường như bạn phải khai báo tất cả các 'quan tâm', và tiểu bang cho dù đó là đúng hay sai .

+1

Tôi đang đánh dấu điều này là được chấp nhận từ API đã chuyển sang v3. Nếu bạn cần giải pháp cho v2, hãy cuộn xuống câu trả lời của Trevor Gehman. Cảm ơn bạn đã đăng bài này, Crimbo – Joe

+0

Không sao cả! Vẫn không có tài liệu chính thức nào khác ngoài [Hướng dẫn API] (http://developer.mailchimp.com/documentation/mailchimp/reference/overview/). Vì vậy, bạn còn lại để đoán những gì hiện những gì – Crimbo

2

Sử dụng GROUPINGS merge var:

Set nhóm lợi ích bằng cách nhóm. Mỗi phần tử trong mảng này phải là một mảng chứa thông số "nhóm" chứa một dấu phẩy danh sách phân cách các nhóm sở thích để thêm. Các tên Commas in Interest Group phải được thoát bằng dấu gạch chéo ngược. tức là, "" => '\', và một trong hai một 'id' hoặc 'tên' tham số để xác định Grouping - nhận được từ listInterestGroupings()

+0

Phương pháp nào có sẵn trong? – Joe

+0

Có thể http://apidocs.mailchimp.com/api/1.3/listupdatemember.func.php này? ;) – shybovycha

+0

Tính năng này có hoạt động cho 2.0 hay chỉ với 1.3 – Chapsterj

8

tôi không thể có được câu trả lời khác trên trang này để làm việc . Đây là hợp nhất vars mà tôi đã sử dụng:

$merge_vars = array(
    'GROUPINGS' => array(
     0 => array(
      'id' => "101", //You have to find the number via the API 
      'groups' => "Interest Name 1, Interest Name 2", 
     ) 
    ) 
); 
+0

Chỉ có giải pháp phù hợp với tôi cũng là – rosswil

+1

Có, tính năng này hoạt động. Tôi phải tìm hiểu ý nghĩa của 'id' - đó là nhóm LIST id quan tâm. Tôi sẽ đăng mã của tôi dưới đây. – Urs

+0

Tương tự ở đây. Điều quan trọng là khóa mảng trong các nhóm. Tôi đã dành khoảng một giờ cho đến khi tôi tìm thấy câu trả lời của bạn. Đáng buồn thay, API không ném một ngoại lệ khác. –

2

Dưới đây là đoạn code tôi đã làm việc

require_once 'MCAPI.class.php'; 
require_once 'config.inc.php'; //contains apikey 

// use this once to find out id of interest group List 
//$retval = $api->listInterestGroupings($listId); 
//echo '<pre>'; 
//print_r($retval); 
//echo '</pre>'; 
//die(); 

$emailAddress = '[email protected]'; 
//You have to find the number via the API (id of interest group list) 
$interestGroupListId = FILLMEIN; 

$api = new MCAPI($apikey); 

// Create an array of Interest Groups you want to add the subscriber to. 
$mergeVars = array(
    'GROUPINGS' => array(
     0 => array(
      'id' => $interestGroupListId, 
      'groups' => "FILL IN GROUP NAMES", 
     ) 
    ) 
); 

// Then use listUpdateMember to add them 
$retval = $api->listUpdateMember($listId, $emailAddress, $mergeVars); 

if ($api->errorCode){ 
    echo "Unable to update member info!\n"; 
    echo "\tCode=".$api->errorCode."\n"; 
    echo "\tMsg=".$api->errorMessage."\n"; 
} else {  
    echo "Returned: ".$retval."\n"; 
} 
21

Tính đến phiên bản 2.0 của API MailChimp, điều này sẽ làm việc:

$merge_vars = array(
    'GROUPINGS' => array(
     array(
      'name' => "GROUP CATEGORY #1", // You can use either 'name' or 'id' to identify the group 
      'groups' => array("GROUP NAME","GROUP NAME") 
     ), 
     array(
      'name' => "GROUP CATEGORY #2", 
      'groups' => array("GROUP NAME") 
     ) 
    ) 
); 

Nguồn: http://apidocs.mailchimp.com/api/2.0/lists/subscribe.php

Sử dụng mã vạch PHP wrapper (https://github.com/drewm/mailchimp-api/), bạn có thể kết thúc chuyện này để MailChimp qua một trong hai danh sách/đăng ký hoặc danh sách/batch-đăng ký:

$MailChimp = new MailChimp('API_KEY'); 
$result = $MailChimp->call('lists/subscribe', array(
     'id'    => 'LIST ID', 
     'email'    => array('email'=>'[email protected]'), 
     'merge_vars'  => $merge_vars 
)); 
+0

Đánh dấu điều này là chính xác để những người khác đến đây nhìn thấy nó. Cảm ơn bạn đã đăng phiên bản APIv2 :) – Joe

+0

Có vẻ như bạn đang thiếu dấu phẩy trong các phần tử mảng của mình. Tôi không thấy bất kỳ lỗi nào trong đoạn mã trên. Đăng bài của bạn và tôi có thể xem. –

+0

Cảm ơn @TrevorGehman, bằng cách nào đó tôi đã bỏ lỡ toàn bộ năng động của các nhóm đang được nhóm bên trong, điều này làm rõ nó và có người đăng ký của tôi làm việc. –

0

Cũng xin lưu ý không bắt buộc nhưng rất quan trọng tham số cuối cùng của listUpdateMember, theo mặc định replace_interests nó thiết lập là true vì vậy nó sẽ ghi đè lên bất kỳ đăng ký người dùng bạn đang cập nhật có thể đã có trong quá khứ. Nếu bạn muốn thêm những cái mới không chạm vào những cái trước đó, chỉ cần chuyển tên nhóm mới mà bạn muốn thêm và đặt replace_interests thành sai.

$api = new MailChimp('API_KEY'); 
$pArray = array('GROUPINGS'=>array(
         array('name'=>'GROUP CATEGORY', 'groups'=>'group1,group2'), 
       ) 
    ); 
if (is_array($pArray)) { 
     $api->listUpdateMember($pListId, $pEmail, $pArray, '', false); 
} 
0

Ví dụ sử dụng DrewM's MailChimp wrapper và cú pháp viết tắt cho mảng (PHP 5.4+) add to groups:

$merge_vars = [ 
    'GROUPINGS' => array(
     0 => [ 
      'id' => 12345, // need grouping ID 
      'name' => 'Interests', // or name instead 
      'groups' => [ 'cars', 'trucks' ] 
     ] 
    ] 
]; 

$mc = new MailChimp('API_KEY'); 
$mc->call(
     'lists/subscribe', [ 
      'id'    => '9876', // list ID 
      'email'    => array[ 'email' => '[email protected]' ], 
      'merge_vars'  => $merge_vars, 
      'double_optin'  => true, 
      'update_existing' => true, 
      'replace_interests' => false, // do you want to add or replace? 
      'send_welcome'  => false, 
     ] 
    ); 

Bạn không cần nhóm 'tên' HOẶC 'id', cả hai đều không cần thiết.Để có được nhóm sử dụng ID: lists/interest-groupings

2

Đây là một biến thể của Justins câu trả lời nhưng đã thử tất cả các trên này là người duy nhất tôi có thể bắt đầu làm việc với DrewM của MailChimp wrapper

$merge_vars = array(
    'GROUPINGS' => array(
     0 => array(
      'id' => '[GROUP_LIST_ID]', // need grouping ID 
      'name' => '[OR_GROUP_LIST_NAME]', // or name instead 
      'groups' => array('[GROUP_NAME_1]', '[GROUP_NAME_2]') 
     ) 
    ), 
); 

$mc = new MailChimp('[YOUR_MAILCHIMP_API]'); 
$mc->call(
     'lists/subscribe', array(
      'id'    => '[YOUR_LIST_ID]', // list ID 
      'email'    => array('email' => '[email protected]'), 
      'merge_vars'  => $merge_vars, 
      'double_optin'  => true, 
      'update_existing' => true, 
      'replace_interests' => false, // do you want to add or replace? 
      'send_welcome'  => false, 
     ) 
    ); 

Nếu bạn không chắc chắn về nhóm của bạn liệt kê ID và muốn sử dụng nó, bạn có thể gọi:

$current_groupings = $mc->call('lists/interest-groupings', array(
       'id' => '[GROUP_LIST_ID]', 
      )); 
var_dump($current_groupings); 
Các vấn đề liên quan