我目前正在使用MailChimp API for PHP,版本1.3.1(http://apidocs.mailchimp.com/api/downloads/#php)
我在MailChimp中设置了一个列表,并希望动态添加:
$objMailChimp->listBatchSubscribe($strMailingListID, ...)
)$objMailChimp->listInterestGroupingAdd($strMailingListID, ...)
)$objMailChimp->listInterestGroupAdd($strMailingListID, ...)
)API(http://apidocs.mailchimp.com/api/1.3/#listrelated)在如何将订阅者添加到兴趣小组方面有些不清楚 - 这里的任何人都有任何想法吗?
答案 0 :(得分:21)
从MailChimp API的2.0版开始,这应该有效:
$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")
)
)
);
来源:http://apidocs.mailchimp.com/api/2.0/lists/subscribe.php
使用准系统PHP包装器(https://github.com/drewm/mailchimp-api/),然后您可以通过lists / subscribe或lists / batch-subscribe将其发送到MailChimp:
$MailChimp = new MailChimp('API_KEY');
$result = $MailChimp->call('lists/subscribe', array(
'id' => 'LIST ID',
'email' => array('email'=>'trevor@example.com'),
'merge_vars' => $merge_vars
));
答案 1 :(得分:8)
我无法在此页面上获得其他答案。这是我必须使用的合并变量:
$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",
)
)
);
答案 2 :(得分:5)
从v3开始,'分组'已经变成了兴趣'。
您必须找出要添加到的组(兴趣)的ID。不幸的是,在MailChimp仪表板上的任何地方都找不到。
找出兴趣的最简单方法' ID(而不是创建脚本)是转到MailChimp playground,然后在输入您的API密钥后,路由到...
列出>有问题的列表>兴趣类别(在子资源下拉列表中)
,然后... 强>
兴趣类别的兴趣(在子资源下拉列表中),然后... 强>
点击查看兴趣并参阅' id'字段,忽略其他ID字段
或强>
列出>有问题的列表>成员(在子资源下拉列表中)
,然后... 强>
为任何成员
加载(在操作下拉列表中)或强>
创建会员(按钮)
该页面将加载会员的详细信息。向下滚动,直到您看到兴趣'阵列/对象。在那里你会看到ID。请注意,它们可以设置为true或false。
您必须弄清楚哪些ID与哪些' group' /' interest'通过上一个方法或拨打电话,然后通过MailChimp信息中心查看会员的详细信息。
因此,当涉及到实际进行 POST 调用('成员'创建)时,您会想要某些内容......
{
"email_address":"example@freddiesjokes.com",
"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"
}
}
PUT 致电('会员'编辑)示例...
{
"interests": {
"b8a9d7cbf6": false,
"5998e44916": true
}
}
您似乎必须声明每个'兴趣'并说明它是真还是假。
答案 3 :(得分:2)
使用GROUPINGS
合并var:
通过分组设置兴趣组。这个数组中的每个元素都应该是 包含“groups”参数的数组,其中包含逗号 要添加的兴趣组的分隔列表。兴趣小组中的逗号 应使用反斜杠转义名称。即,“,”=> “\,”和其中之一 用于指定分组的“id”或“name”参数 - get from listInterestGroupings()
答案 4 :(得分:2)
这是我开始工作的代码
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 = 'info@example.com';
//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";
}
答案 5 :(得分:2)
这是Justins回答的变体,但尝试了以上所有这是我唯一可以使用DrewM的MailChimp包装器
$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' => 'someone@something.com'),
'merge_vars' => $merge_vars,
'double_optin' => true,
'update_existing' => true,
'replace_interests' => false, // do you want to add or replace?
'send_welcome' => false,
)
);
如果您不确定您的群组列表ID并希望使用它,您可以致电:
$current_groupings = $mc->call( 'lists/interest-groupings', array(
'id' => '[GROUP_LIST_ID]',
) );
var_dump($current_groupings);
答案 6 :(得分:0)
另请注意listUpdateMember的可选但非常重要的最后一个参数,默认情况下 replace_interests 设置为true,因此它将覆盖您正在更新的用户过去可能拥有的任何订阅。如果您想要添加不接触之前的新组,只需传递您想要添加的新组名,并将 replace_interests 设置为false。
$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);
}
答案 7 :(得分:0)
使用DrewM's MailChimp wrapper的示例和数组的简写语法(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' => 'example@abc.com' ],
'merge_vars' => $merge_vars,
'double_optin' => true,
'update_existing' => true,
'replace_interests' => false, // do you want to add or replace?
'send_welcome' => false,
]
);
您需要分组&#39;名称&#39; 或&#39; id&#39;,两者都不需要。要使用分组ID:lists/interest-groupings