如何使用广告系列监控API将多个值传递到自定义字段

时间:2011-08-23 10:09:11

标签: php api

根据广告系列监视器的示例代码,添加新订阅者时,可以像这样传递自定义字段的值

<?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的支持。任何关于此的信息将不胜感激。

由于

2 个答案:

答案 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时)以恢复你的数组。