LaravelとMailChimp連携:Webhookを利用してsubscribe, unsubscribe, updateを通知する方法

LaravelとMailChimp

LaravelでMailChimpのWebhookを利用する方法を解説します。

メルマガ申し込み・解約・変更等がが起こった時にMailChimpからLaravel側に情報を通知し、Laravel側で処理を実行できます。

「さくっとできるかな」と思ったものの、HTTPリクエストに癖があったりと、わりと手こずりました^^;

手こずりポイントを含めて、ひとつひとつ手順を解説していきますね。

LaravelでMailChimpのWebhookを利用してsubscribe, unsubscribe, updateを通知する方法

次の想定で説明していきます。

  • MailChimpのアカウントには既に顧客リスト(Audience)がある
  • 連携させたいLaravelのプロジェクトもある

まずはMailChimp側でWebhookの設定からスタートしましょう。

MailChimpにWebhookの設定をする

①MailChimpにログインし、左側からAudienceを選択

②右側の【Manage Audience】プルダウンから【Setting】選択

③Settingメニュー一番下のWebhooks選択

④【Create New Webhook】ボタンをクリック

⑤【Create New Webhook】フォームに入力

下記のように入力します。

1.Callback URL には、ドメイン/mailchimp/webhook としておきます。

2.”What type of updates should we send?”の部分では、Webhookを通じて提供してほしい情報を選択

3.”Only send updates when a change is made …” の部分では、誰が行った変更について通知するかを選択

【Create new webhook入力例】

上記例では、Unsubscribeが起こった場合に通知する、ということにしています。

ちなみに本番URLではなくテストURLを使用したい場合には、NGROKというツールを使うと便利ですよ。ローカル環境でHTTPSテスト環境を手軽に構築できます。

⑥Saveボタンを押して保存します。

Laravel側でMailChimpのWebhookの通知を受け取る設定をする

次にLaravel側の設定をします。

① CSRFの例外設定を行う

Laravelでは最初にCSRFの例外設定を行っておきましょう。

Middleware/VerifyCsrfToken.php ファイルに、下記のようにmailchimpを加えます。

【VerifyCsrfToken.php】

これで “ドメイン/mailchimp” で始まるURLの場合には、CSRFルールを無視できます。ここをいれておかないと、CSRFルール違反ということでエラーになってしまいます。

CSRFルールと違反については、下記の記事で詳しく解説しています。詳しく知りたい場合は、併せて読んでくださいね。

② ルート設定を行う

次にルート設定です。resources/routes/web.phpファイルに、下記を加えます。

今回はMailChimpControllerに処理をいれておくことにします。

【web.php】

ここで、getとpost、2つのルート設定を作っておくのがポイント。

実際にはpostしか必要ないのですが、getも入れておかないとエラーになります。

③コントローラに処理を記述

下記コマンドを実行して、MailChimpControllerを作成します。

作成したMailChimpControllerに処理をいれていきます。

まずはwebhookを通じて取得した値を取り出します。Unsubscribeの場合には、次のようなデータが送信されます。

【Webhook response: Unsubscribes】

上記の中からEMAILの値を取り出していきましょう。このEMAIL情報を持つユーザーを探し出し、このユーザーに処理を実行する、というコードを書いていきます。

書き方としては、次のようになります。

【MailChimpController・処理例】

④テストする

最後にテストを行います。

さいごに

ルート設定や値の取り出し方がちょっと面倒ですが、このあたりがクリアできれば、難しくはありません。

Laravelと連携可能なメールシステム、という意味では、MailChimpは最強だと思います。

MailChimpについては別記事でも色々解説しているので、ご興味があれば、関連記事も見てみてくださいね。

MailChimp、実はまだ登録していないという場合は、下記からご登録いただけます。

MailChimpの登録はこちらをクリック

↓↓↓


ページの真ん中あたりに【Sign Up Free】という青緑色のボタンが表示されますが、ここをクリックすると、無料版を登録できます。

LaravelとMailChimp
【Mailchimp導入サポート】

「LaravelとMailchimpを連携させたい」「Mailchimpを使いたいけど英語で不安」という方のために、サポートサービスをご用意しています。下記のボタンをクリックして、詳細をご覧ください。

詳しく見る

Twitter始めました。
40代からプログラミング!

コメント

タイトルとURLをコピーしました