1

我有一个 html 表单,其中收集了姓名和电子邮件地址。我尝试使用此脚本将这些信息提交到 GetResponse 列表:

<?php

function mytheme_save_to_getresponse($form)
{

    require_once 'jsonRPCClient.php';
    $api_key = 'myAPIkey';
    $api_url = 'http://api2.getresponse.com';
    $client = new jsonRPCClient($api_url);
    $result = NULL;

try {
    $result = $client->get_campaigns(
        $api_key,
        array (
            # find by name literally
            'name' => array ( 'EQUALS' => 'testlist' )
        )
    );
}
catch (Exception $e) {
    # check for communication and response errors
    # implement handling if needed
    die($e->getMessage());
}

$campaigns = array_keys($result);
$CAMPAIGN_ID = array_pop($campaigns);

    $subscriberEmail =  $_GET['email'];

try {
    $result = $client->add_contact(
        $api_key,
        array (
            'campaign'  => $CAMPAIGN_ID,
            'name'     =>  $subscriberName,
            'email'     =>  $subscriberEmail,
            'cycle_day' => '0'
                    )
    );
}
catch (Exception $e) {
    # check for communication and response errors
    # implement handling if needed
    die($e->getMessage());
}
}
?>

该脚本没有显示任何错误,但 GetResponse 没有将潜在客户保存到我的列表中。难道我做错了什么?

谢谢詹姆斯

4

3 回答 3

1

如果您收到 [queued]=>1 的响应,那么您的脚本工作正常。只有在验证/确认输入的电子邮件后,它才会添加到您的联系人中 $subscriberEmail 将收到一封确认电子邮件...在用户之后点击链接联系人将被添加

于 2014-04-01T09:48:55.580 回答
1

这一行是错误的:

'name'     =>  $subscriberName,

因为您有未定义的变量并将其发布到没有值的 GetResponse API 'name' 参数,所以 GetResponse API 返回无效参数。

改成:

$subscriberName => "Some_test_name", // for test only

在这一行:

$subscriberEmail =  $_GET['email'];

您应该在 GET 表中设置一些电子邮件,以便进行测试,只需更改为:

$subscriberEmail =  "test@domain.com"; // or sth like this.

最后一个想法是 var_dump $result 变量,然后您会看到来自 GetResponse API 的响应

$result = null; // before try {

var_dump($result); // before end of function } ?>
于 2015-02-17T17:41:39.217 回答
0

您的代码看起来不错,您必须设置回调 url 以进行错误处理

于 2014-01-09T09:28:12.537 回答