【发布时间】:2015-06-16 13:16:46
【问题描述】:
我已经使用 MailChimp(旧版本)做了很多工作,但由于一些新功能,我最近不得不更新到较新的 V2。现在我无法让我的代码工作,无论我在哪里搜索,我能找到的唯一解决方案是在 GitHub 存储库https://github.com/mailchimp/mcapi2-php-examples 的帮助下,它在这个项目中无法工作。
我的代码:
<?php
include "../../system/function/db.php";
$espid = urlencode(make_safe($_GET['espid']));
$apikey = urlencode($_GET['apikey']);
$usX = explode("-", $apikey);
$listid = urldecode($_GET['listid']);
$data = array(
'apikey'=> $apikey,
'filters' => array( 'list_id' => $listid ),
);
$payload = json_encode($data);
$submit_url = "http://" . $usX[1] . ".api.mailchimp.com/1.3/?method=campaigns";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $submit_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($payload));
$result = curl_exec($ch);
curl_close ($ch);
$data = json_decode(json_encode(json_decode($result)), true);
$data = $data['data'];
foreach ($data as $id) {
$ids .= $id['id'] . ",";
}
$campaigns = explode(",", $ids);
foreach ($campaigns as $campaign) {
if (!empty($campaign)) {
$data = array(
'apikey'=> $apikey,
'cid' => $campaign,
);
$payload = json_encode($data);
$submit_url = "https://" . $usX[1] . ".api.mailchimp.com/2.0/reports/opened.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $submit_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($payload));
$result = curl_exec($ch);
curl_close ($ch);
echo '<pre>'; var_dump($result); echo '</pre>';
}
}
?>
错误:
string(97) "{"status":"error","code":-100,"name":"ValidationError","error":"You must specify a apikey value"}"
我尝试用 API 密钥的字符串替换变量,这并没有做任何不同的事情 - 我不知道我是否可能将信息“错误”发送到 MailChimp 服务器。
你们能从这里帮助我吗?希望您的理解和感谢!
【问题讨论】: