LoginSignup
3
4

More than 3 years have passed since last update.

【Ruby+Rails】ユーザ登録と一緒にMailchimpのメールリストに登録したいとき

Posted at

背景

サービス開発にて、メルマガ配信をMailchimpで管理することとなった。

その際、ユーザ登録時に、Mailchimpの提供するAPIをたたくことで、

Mailchimp側のメーリングリストに登録するよう処理を実装した。

Mailchimp APIについては参考になる日本語文献も少ないので、

この記事がお役に立てるのであれば幸いです。

アプリケーション構成

プログラミング言語:Ruby

フレームワーク:Rails

ごく一般的なRuby+Railsの環境でございます。

Mailchimp APIのセッティング

Gemのインストール

Gemfileに以下を記載

gem "mailchimp-api", require: "mailchimp"

APIキーの取得

Mailchimp APIを使うためにAPIキーを用意しましょう。

まずはMailchimpのご自身のアイコンをクリック。

メニューが出てきますので、「Account」をクリックします。

スクリーンショット 2020-07-19 0.26.21.png

次に出てくる画面の「Extras」をクリック。

「API keys」を押下します。

スクリーンショット 2020-07-19 0.27.14.png

そのあとに出てくる画面の「Create A Key」を押下。

スクリーンショット 2020-07-19 0.35.31.png

出てきた「API key」を取っておきます。

Audiens IDの取得

Mailchimpにはユーザのメール情報を登録するリストの概念があります。

これを「Audience」といいます。

そのため、どのリストに登録するか?の指定が必要です。

そのために、リストのID、すなわち「Audiens ID」を取得します。

ここからもカチカチとMailchimpのコンソール操作です。

 

まずはヘッダーの「Audience」を押下。そのあと「Audience dashboard」を押下。

スクリーンショット 2020-07-19 0.45.18.png

次に「Manage Audience」→「Settings」とクリック。

スクリーンショット 2020-07-19 0.45.44.png

「Settings」→「Audience name and defaults」とクリック。

スクリーンショット 2020-07-19 0.45.59.png

やっとこさでました。Audience IDです。こちらを控えておきます。

スクリーンショット 2020-07-19 0.44.58.png

環境変数の設定

取得したAPIキーとAudience IDを.envに投入です。

.env
# Mailchimp
MAILCHIMP_API_KEY= # APIキー
MAILCHIMP_LIST_ID= # Audience ID

 実装

Mailchimp向けのモデルを作成します。

まずはclassを作成します。

この記事を一部参照しております(https://qiita.com/kon_yu/items/372bba35e60744633c94)。

qiita.rb
class MailMagazine
  # Mailchimp API初期化
  def initialize
    @mailchimp = Mailchimp::API.new(ENV['MAILCHIMP_API_KEY'])
  end

  # リストに追加
  # 第三引数のhash値はアカウントのマージタグを参考(lists/settings/merge-tags?id=XXX)
  def add_member(email, first_name, last_name)
    @mailchimp.lists.subscribe(
      ENV['MAILCHIMP_LIST_ID'],
      {email: email},
      {FNAME: first_name, LNAME: last_name},
      "html",
      false
    )
  end
end

add_memberなるメソッドを作って登録を行います。

第一引数はメールアドレス。

第二引数は名前。

第三引数は苗字。

です。

 

add_member内のlists. subscribeがAPIのメソッドでして、

Mailchimpにメールアドレスを登録してくれます。

第一引数はAudience ID

第二引数は登録したいメールアドレスをHash値で。

第三引数はMailchimpで設定できる補助情報です。氏名や誕生日など登録できます。

内容については、Mailchimpコンソールの

「Audience」→「Settings」→「Audience fields and * |MERGE| * tags」

をご覧ください。

スクリーンショット 2020-07-19 10.14.29.png

こんな感じでメールアドレス以外の情報を確認・登録できます。

メールアドレス同様、MergetagをキーにしたHash値を入力します。

Mailchimpにメールアドレスを登録

ユーザ登録処理に、こんな感じで組み込む。

mailchimp = MailMagazine.new
mailchimp.add_member(@user.email, @user.first_name, @user.last_name)

意外と簡単です^ ^

よきMailchimpライフを〜

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4