背景
サービス開発にて、メルマガ配信を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」をクリックします。
次に出てくる画面の「Extras」をクリック。
「API keys」を押下します。
そのあとに出てくる画面の「Create A Key」を押下。
出てきた「API key」を取っておきます。
Audiens IDの取得
Mailchimpにはユーザのメール情報を登録するリストの概念があります。
これを「Audience」といいます。
そのため、どのリストに登録するか?の指定が必要です。
そのために、リストのID、すなわち「Audiens ID」を取得します。
ここからもカチカチとMailchimpのコンソール操作です。
まずはヘッダーの「Audience」を押下。そのあと「Audience dashboard」を押下。
次に「Manage Audience」→「Settings」とクリック。
「Settings」→「Audience name and defaults」とクリック。
やっとこさでました。Audience IDです。こちらを控えておきます。
環境変数の設定
取得したAPIキーとAudience IDを.envに投入です。
# Mailchimp
MAILCHIMP_API_KEY= # APIキー
MAILCHIMP_LIST_ID= # Audience ID
## 実装
Mailchimp向けのモデルを作成します。
まずはclassを作成します。
この記事を一部参照しております(https://qiita.com/kon_yu/items/372bba35e60744633c94)。
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」
をご覧ください。
こんな感じでメールアドレス以外の情報を確認・登録できます。
メールアドレス同様、MergetagをキーにしたHash値を入力します。
Mailchimpにメールアドレスを登録
ユーザ登録処理に、こんな感じで組み込む。
mailchimp = MailMagazine.new
mailchimp.add_member(@user.email, @user.first_name, @user.last_name)
意外と簡単です^ ^
よきMailchimpライフを〜