我有一个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没有将导致保存到我的列表中。我做错了吗?
由于 詹姆斯
答案 0 :(得分:1)
如果你的回复是[排队] =&gt; 1那么你的脚本工作正常.. 只有在确认/确认输入的电子邮件后,它才会添加到您的联系人中 $ subscriberEmail将收到确认电子邮件...用户点击链接后将联系
答案 1 :(得分: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 } ?>
答案 2 :(得分:0)
您的代码看起来不错,您必须设置回调网址以进行错误处理