Mailchimp API v3.0で、サブスクライバーのEMAILアドレスを変更できるかどうかを知りたいのですが。
これは私が持っているものです:
$email = strtolower(trim($oldEmail));
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return false;
}
$emailHash = md5($email);
$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash,
array(
'email_address' => $oldEmail,
'merge_fields' => array("EMAIL" => $newEmail),
'status' => "subscribed",
));
そして、それは機能しません。 Mailchimpは通常のGETMEMBER応答を返し、何も変更されていないことを示します。
何か案が?
ありがとう、リカルド
これは少し遅いことは知っていますが、今はPUT
メソッド(.../3.0/lists/{listId}/members/{md5}
)メールアドレスを変更できます。
本文とMERGE0(EMAIL)タグで新しいメールを送信していますが、前のメールのmd5を使用しています。メールを正しく変更しています。
docs によると、そうです。それは私たちの側でも機能しないので、それがドキュメントにある理由を知るためにMailchimpに連絡します。
編集:それは確かに不可能です、ドキュメントは時代遅れでした。これはmailchimpがこれについて言わなければならなかったことです:
こんにちはPhilipp、これらのAPIの懸念についてMailChimpサポートに連絡し、私たちが支援できるようにしてくれてありがとう。 MailChimpバージョン3.0では、ユーザーはサブスクライバーの電子メールアドレスを更新できません。これは過去のバージョンのAPIで利用できた可能性がありますが、サポートされなくなりました。サブスクライバーの電子メールアドレスを更新するには、MailChimp内から手動で更新するのが最善の方法です。各電子メールアドレスは、リストメンバーの一意の識別子と見なされます。ドキュメントが少し誤解を招く可能性があることは確かに理解できます。リスト内のサブスクライバーフィールドを更新することはできますが、メールアドレスはその1つではありません。これが、MailChimpで更新された情報を見たことがない理由です。この目的でドキュメントを確認し、APIを使用してメールアドレスを更新できることを実際に提案している場合は、その記事を編集するよう提案します。このフィードバック、そして私たちと一緒にいてくれてありがとう。私たちの側で物事をレビューしたので、あなたの時間、エネルギー、そして忍耐に感謝します。 MailChimpをお選びいただき、ありがとうございます。今後ご不明な点がございましたら、お気軽にお問い合わせください。
MailChimpsによると changelog 2016年11月3日以降、patchおよびputでユーザーのメールアドレスを変更できます。
2016年11月3日
/ ists/{list_id}/members/{subscriber_hash}へのPATCHまたはPUT呼び出しを介して、既存のリストメンバーのemail_addressを更新する機能を追加します。
メールを変更するためにmerge_fieldを使用する必要はありません。あなたは単にこのようにそれをすることができます:
$emailHash = md5($oldEmail);
$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash,
array(
'email_address' => $newEmail,
'status' => "subscribed",
));
いいえ、MailChimpは実際にはメールアドレスの変更を許可していません。 Webアプリでそれを行うことができますが、ほとんどすべての統計情報とアクティビティ情報は引き継がれません。そのため、APIv3.0はメールアドレスの変更をまったくサポートしていません。購読を解除するか、古いアドレスを削除してから、新しいアドレスを再作成します。