根据广告系列监视器的示例代码,添加新订阅者时,可以像这样传递自定义字段的值
<?php
require_once '../../csrest_subscribers.php';
$wrap = new CS_REST_Subscribers('Your list ID', 'Your API Key');
$result = $wrap->add(array(
'EmailAddress' => 'Subscriber email',
'Name' => 'Subscriber name',
'CustomFields' => array(
array(
'Key' => 'Field Key',
'Value' => 'Field Value'
)
),
'Resubscribe' => true
));
?>
现在,如果我将单个值传递给CustomFields元素,但是当我尝试传递多个值时,上面的代码工作正常。我搜索过API文档,但无法找到有关如何将多个值传递给单个自定义字段键的任何信息。
我希望能够做的就是这一行
'CustomFields' => array(
array(
'Key' => 'Field Key',
'Value' => 'Value 1, Value2'
//OR 'Value' => array('value1', 'value2')
)
),
请注意我是如何使用逗号作为分隔符传递两个值的。请有人知道如何做我想要实现的目标,或者知道这是否受到广告系列监控API的支持。任何关于此的信息将不胜感激。
由于
答案 0 :(得分:0)
此代码适用于我。您需要在项目文件夹中添加广告系列监控类文件,并使用有效的列表ID和API密钥。您可以从管理帐户链接和列表中找到api密钥id点击列表标题下方的(更改名称/类型)。
您需要从 listid 创建&#34;自定义字段&#34; (右侧边栏)。 Ex(主题,电话号码,郊区,留言等)。
当导出订阅者列表时,您可以找到自定义归档数据。
请等一段时间查看你的名单。
require_once 'csrest_subscribers.php';
$name = $_POST['username'];
$email = $_POST['email'];
$phone = $_POST['your-tel'];
$suburb = $_POST['your-suburb'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$wrap = new CS_REST_Subscribers('Your list ID', 'Your API Key');
$result = $wrap->add(array(
'EmailAddress' => $email,
'Name' => $name,
'CustomFields' => array(
array(
'Key' => "Subject",
'Value' => $subject
),
array(
'Key' => "Phone Number",
'Value' => $phone
),
array(
'Key' => "Suburb",
'Value' => $suburb
),
array(
'Key' => "Message",
'Value' => $message
)
),
'Resubscribe' => true
));
echo "Result of POST /api/v3/subscribers/{list id}.{format}\n<br />";
if($result->was_successful()) {
echo "Subscribed with code ".$result->http_status_code;
} else {
echo 'Failed with code '.$result->http_status_code."\n<br /><pre>";
var_dump($result->response);
echo '</pre>';
}
答案 1 :(得分:-2)
Please does anybody know how to do what i am trying to achieve or know whether this is supported by campaign monitor API or not
根据他们的Reference,您应该发送类似
的内容'CustomFields' => array(
array(
'Key' => 'Field Key 1',
'Value' => 'Value 1'
),
array(
'Key' => 'Field Key 2',
'Value' => 'Value 2'
),
),
但是如果你需要存储一个数组值,我认为你可以通过在你的值中使用序列化数据来“欺骗”它,然后你可以反序列化返回的数据(当你执行GET时)以恢复你的数组。