LoginSignup
4
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

mailchimp-marketing-rubyでMailchimpのAPIを叩いてみる

Last updated at Posted at 2023-06-30

Mailchimpでは様々な情報がAPIで取得できるようになっています。

データ分析基盤との連携をする際、AWSではAmazon AppFlow を利用したり、Treasure DataではMailchimp Export Integrationを利用することなどが可能ですが、取得できるのは一部の情報のみで、それ以外は自分で取得する必要があります。

その際、RubyであればMailchimpMarketingRubyを使うことで、APIを楽に利用することができます。

実際にサンプルを叩いてみる

まず、こんな感じにGemfileを編集します。dotenvはAPIキーを取得するために使います。

Gemfile
source "https://rubygems.org"

gem 'dotenv'
gem 'MailchimpMarketing', :git => 'https://github.com/mailchimp/mailchimp-marketing-ruby.git'

次に.envを編集します。
MAILCHIMP_SERVER_PREFIXはAPI_KEYの-の後の文字を入れるだけで基本はOKみたいです。

.env
MAILCHIMP_API_KEY = 'xxxxxxxxxx-xxx'
MAILCHIMP_SERVER_PREFIX = 'xxx'

ではこんな感じのスクリプトを書いて実際にAPIを叩いてみます。
今回はサンプルとして /lists を叩いてみます。

main.rb
require 'dotenv'
require 'MailchimpMarketing'

Dotenv.load

client = MailchimpMarketing::Client.new()
client.set_config({
  :api_key => ENV['MAILCHIMP_API_KEY'],
  :server => ENV['MAILCHIMP_SERVER_PREFIX']
})

response = client.campaigns.list('count': 10)
puts response["campaigns"]

bundle installをした後、ruby main.rbを実行すると、APIを叩いた結果を得ることができます。

他のAPIの利用方法も READMEにまとまっているため、そちらを元にとりたい情報をまとめることができます。
また、一度に取れる情報は最大千件までですが、大半のAPIでは下記のようにoffsetパラメータを利用することで1001件目移行も取得ができるので、取得に困ることはなさそうです。

client.campaigns.list('count': 1000, offset: 1000) # 0スタートなので1001件目から取りたい場合は1000で良い

まとめ

自分でAPIをガリガリ書くのは若干面倒ですが、Mailchimpは公式でラッパーが用意されており、非常に助かります。
node.jsPHPPython実装もあり、幅広い言語で提供されておりお好みで選ぶことができるので必要になった際は是非お試しください。

4
0
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
4
0