【发布时间】:2015-05-22 09:12:23
【问题描述】:
我使用 Mailjet api 将提交的电子邮件存储在 Mailjet 列表中。这在有 Mailjet 0.1 版本 API 时工作正常(当时没有任何 PHP 包装器,但很容易与他们的示例一起使用),但是当他们将 API 更改为版本 3 时,他们的 PHP 包装器在添加时不返回任何联系人 ID联系人列表中的新联系人。我之前提出了一个类似的问题,如何让 Mailjet 工作,但现在这个问题出现在新版本 3 中。
这里又是更正后的代码,
*假设显示的电子邮件是尚未在 Mailjet 中创建的新联系人。
$mj = new Mailjet();
$contact_params = array("method" => "POST", "Email" => "abc@gmail.com");
$contact = $mj->contact($contact_params);
$add_params = array(
"method" => "POST",
"ContactID" => $contact,
"ListID" => _MAILJET_LIST,
"IsActive" => "True"
);
$mj->listrecipient($add_params);
开发者@Gormador 说使用$contact->Data[0]->ID 作为联系人ID,但它仍然返回NULL。
尝试将创建的联系人添加到列表时出现此错误(调试模式设置为 2)。
array(3) { ["ContactID"]=> NULL ["ListID"]=> string(1) "2"
["IsActive"]=> string(4) "True" } string(105) "{ "ErrorInfo" : "",
"ErrorMessage" : "Invalid data: \"null\" is an invalid integer",
"StatusCode" : 400 }"
上一个问题:Mailjet: Adding email to list does not work
更新:包含更正的完整代码,
$mj = new Mailjet();
$add_email = "testing" . rand(0, 1000) . "@gmail.com";
$contact_params = array("method" => "POST", "Email" => $add_email);
$mj->contact($contact_params);
$viewContact = array("method" => "VIEW","unique" => $add_email);
$contact = $mj->contact($viewContact);
$add_params = array( "method" => "POST", "ContactID" => $contact->Data[0]->ID, "ListID" => 1, "IsActive" => "True" );
$mj->listrecipient($add_params);
【问题讨论】:
-
对不起,我真的无法在我这边重现......这个更新的代码对我来说很好用。你能更新完整的输出吗?并通过评论通知我,否则我会错过它:-)
标签: php email subscribe mailjet