この記事について
最近新しくなった、mailchimpのapiを触ってみたので
導入方法や、使い方をサクッと解説してみます。
これまで、こちらの古いsdkしか用意されていなかったので、いつ使えなくなるか、、、といった感じでした(たぶん)
今回apiの刷新と、新たな公式sdkが公開されましたので、乗り換えのため触ってみたのと若干はまった部分もあったので、記録として置いておきます。
https://mailchimp.com/developer/blog/
環境や前提条件など
(環境)
- ruby 2.7.1
- rails 6.0.2
(前提条件)
- mailchimpのアカウントがすでにある
(触るAPI)
- Mailchimp Marketing API
- github:https://github.com/mailchimp/mailchimp-marketing-ruby
事前準備
Gemの追加
gem 'MailchimpMarketing'
mailchimpのAPIキーの作成
若干わかりづらい場所にありました。
Account > Extras > API Key > Create A Keyボタン
キーが生成されるので、これでOK
clientの準備
ほぼリファレンス見れば書いていますが、、、
mailchimp = MailchimpMarketing::Client.new
mailchimp.set_config({
:api_key => 'YOUR_API_KEY',
:server => 'YOUR_SERVER_PREFIX'
})
mailchimp.ping.get
# {"health_status": "Everything's Chimpy!"} が出ればOK
YOUR_SERVER_PREFIX
は、APIキーの-
以降の文字を追加します。
xxxxxxxxxxxxx-us8
だとしたら、us8
こちらに書いていましたが、ちゃんと読まずにサービスのドメインとか適当に入れてたら接続できなくてはまってた。。。
基本的な操作方法
# リスト一覧
mailchimp.lists.get_all_lists
# リスト追加
# email・・追加したいemail_address
# ※すでに存在するアドレスの場合、例外になるのでケースにもよるがput使ったほうがいい
mailchimp.lists.add_list_member(
'list_id',
{
email_address: email
}
)
# リスト put
# email・・・putしたいemail_address
# ※subscriber_hashは、emailアドレスのMD5ハッシュに対応している。
mailchimp.lists.set_list_member(
'list_id',
Digest::MD5.hexdigest(email),
{
email_address: email,
status_if_new: "subscribed"
}
)
# メンバー取得
# email・・・検索したいemail_address
# ※存在しないと例外になるので、存在確認には使わないほうがいい
client.lists.get_list_member('list_id', Digest::MD5.hexdigest(email))
# リストからメンバー検索
# ※emailや、MDハッシュでの検索ができない、、、微妙だなあ、get_list_member使えってことか、、
# 登録した時にunique_email_idという項目が生成されるので、emailベースの存在確認にはそれを使う
mailchimp.lists.get_list_members_info(
MAIL_CHIMP_LIST_ID,
{
unique_email_id: unique_email_id,
status: 'subscribed'
}
)
# メンバー更新
# 更新したいemail
mailchimp.lists.update_list_member(
'list_id',
Digest::MD5.hexdigest(email),
{
status: 'unsubscribed' # 購読解除
}
)