Laravel側でMailChimpのアカウントを作成・更新・削除方法を紹介します。
なおLaravelとMailChimpの連携方法は前回の記事で説明しているので、もし連携がまだでしたら、先に設定しておいてくださいね。
今回は連携済みということで、処理方法をお伝えしていきます。
LaravelとMailChimp連携:コントローラーでアカウント作成・更新処理をする
LaravelとMailChimpを連携させるライブラリはいくつかあるようですが、前回設定した laravel-newsletterを使っていきます。
ルート設定、ビューの表示処理は省略します。
① アカウント登録処理を記述
下記アカウントを登録するとします。
- メールアドレス:test@test.com
- 名前:TEST HANAKO
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
| 1 2 3 4 5 6 7 8 9 |     $mailchimp = MailChimp::getApi();     // 設定済みのMailChimpのAudience IDを$list_idに代入     $list_id=config('newsletter.lists.subscribers.id');     $mailchimp->post("lists/$list_id/members", [         'email_address' => 'test@test.com',         'merge_fields' => ['FNAME'=>'TEST', 'LNAME'=>'HANAKO'],         'status'        => 'subscribed',     ]); | 
処理実行後、MailChimpにログインして、コンタクトが追加されているか確認してみてください。
② MailChimpのアカウント名の更新処理を行う
下記のようにアカウントを変更するとします。
- メールアドレス:test@test.com
- 変更後の名前:TEST HANAKO
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
| 1 2 3 4 5 6 7 |     $mailchimp = MailChimp::getApi();     $list_id=config('newsletter.lists.subscribers.id');     $email='test@test.com';     $subscriber_hash= $mailchimp->subscriberHash($email);     $mailchimp->patch("lists/$list_id/members/$subscriber_hash", [         'merge_fields' => ['FNAME'=>'TEST', 'LNAME'=>'HANAKO'],     ]); | 
更新ときは、patchメソッドを使います。
更新処理後、MailChimpにログインしてAudience/All Contactをチェックしてみます。

アカウントのFirstnameとLastnameが書き換わっていることが確認できます。
③ MailChimpのアカウント名とメールアドレス更新処理を行う
下記のようにアカウントを変更するとします。
- 変更前のメールアドレス:test@test.com
- 変更後のメールアドレス:newtest@test.com
- 変更後の名前:BBB
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
| 1 2 3 4 5 6 7 8 |     $mailchimp = MailChimp::getApi();     $list_id=config('newsletter.lists.subscribers.id');     $email='test@test.com';     $subscriber_hash= $mailchimp->subscriberHash($email);     $mailchimp->patch("lists/$list_id/members/$subscriber_hash", [         'merge_fields' => ['FNAME'=>'BBB'],         'email_address'=>'newtest@test.com'     ]); | 
メールアドレスの変更は、’email_address’ を使います。
④ MailChimpのアカウント削除処理を行う
下記のアカウントを削除するとします。
- 削除するメールアドレス:test@test.com
Laravelのコントローラーに、次のuse宣言を加えておきます。
use Newsletter as MailChimp;
コントローラーのメソッド内の処理は、下記を入れます。
【Laravelコントローラー処理】
| 1 2 3 4 5 |     $mailchimp = MailChimp::getApi();     $list_id=config('newsletter.lists.subscribers.id');     $email='test@test.com';     $subscriber_hash= $mailchimp->subscriberHash($email);     $mailchimp->delete("lists/$list_id/members/$subscriber_hash"); | 
MailChimpのバージョンによる書き方の違いについて
なおapiのバージョンによって書き方が違うようです。
2021年4月29日時点で最新のMailChimp API v3では、上記のようにmarge_fieldsを使いますが、API v2では、marge_varsが使われていたようです。
オンライン上の記事など参考にする場合には、APIのバージョンにご注意ください。
さいごに
LaravelからMailChimpのアカウントを操作する方法を4個、ご紹介しました。

連携によってさくっと色々出来てしまうところがすごい♪
ちなみにMailChimpは無料で使えますが、広告が表示されたりなど、使いにくい面も。
わたしのおすすめはスタンダード版です。
このあたりも含めて、LaravelとMailChimpのお役立ち情報、また書いていきますね。
 
  
  
  
  


ひとことメモuse宣言内のas MailChimpは、分かりやすくするために入れています。
use NewsletterのままでもOKです。その場合、最初は $mailchimp = Newsletter::getApi(); としておいてください。