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(); としておいてください。