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: メールをリストに追加できない
更新: 修正を含む完全なコード、
$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);