编辑:
如果您使用的 PHP 版本早于 5.4,请参阅此答案的编辑以获取修复。
如果可能,请尝试升级:-)
首先感谢您对Mailjet的关注!
现在,在给你答案之前,请知道这里有一个关于你所问内容的指南:-)。此外,该库的Github 存储库
的自述文件有一个关于联系人和联系人列表的示例部分。
既然您知道下次遇到此库问题时首先要查看的位置,那么让我们开始修复,好吗?;-)
修复
您的add_Params
数组只需要一个ContactID
字段。
这是它的样子:
$add_params = [
"method" => "POST",
"ListID" => [TheListID],
"ContactID" => [TheContactID],
"IsActive" => True
];
这应该可以解决您的问题。
如果您想知道原因,请继续阅读。
此外,创建联系人并将其添加到最后描述的新列表的完整过程。
“为什么”
资源是将listrecipient
资源链接到contact
资源的一种方式contactslist
。
这意味着当您在没有所有必要参数的情况下创建资源时,API 不知道该怎么做listrecipient
(更多信息请参见此处)。
整个过程
让我们创建一个contact
和一个contactslist
资源并将前者添加到后者。
(我假设你有一个类的$mj
实例Mailjet
。)
编辑
确保您尝试创建的联系人尚未创建。
请参阅此处了解更多信息。
$makeContactParams = [
"method" => "POST",
"Email" => "testSO@example.org"
];
$contact = $mj->contact($makeContactParams);
echo "Contact ID: ".$contact->Data[0]->ID."\n";
$contactslistParams = [
"method" => "POST",
"Name" => "TestSO"
];
$list = $mj->contactslist($contactslistParams);
echo "List ID: ".$list->Data[0]->ID."\n\n";
$listRecepParams = [
"method" => "POST",
"ListID" => $list->Data[0]->ID,
"ContactID" => $contact->Data[0]->ID,
"IsActive" => True
];
$recep = $mj->listrecipient($listRecepParams);
我希望这能帮助你解决你的问题并理解为什么它首先存在:-)