Python Client for Marketo REST APIを使ってリードインポートを実装しよう
こんにちは。Marketo大谷です。
コミュニティへの初めての投稿なので簡単に自己紹介させていただきます。
名前は大谷佑(おおたにたすく)、Marketoでテクニカルコンサルタントをやってます。
2児(6歳♀, 3歳♀)の父親業兼務。好きなものは国産クラフトビールです。
というわけで、どうぞよろしくお願いいたします。
今回は、REST APIを使ったリードインポートを、Pythonのライブラリを使って簡単に実装してみます。
Python Client for Marketo REST API (Marketo REST Python) というライブラリを使うのですが、これがなかなか便利です。
詳しくは以下に記載しましたが、リードインポートに限らずこのライブラリを使うととても簡単にMarketoのREST APIをコールすることができます。
1. Python Client for Marketo REST APIとは
Python Client for Marketo REST APIとは、Python言語で記述されたMarketo REST API操作ライブラリです。
これを使うと、Marketoの情報を操作するようなPythonスクリプトを簡単に書くことができます。
例えば、以下のような処理を自動的に行なってくれます(明示的に実装する必要がありません!)
- 認証トークンの取得、有効期限管理と再取得
- 時間あたりの呼び出し数制限
- APIコール時のHTTPリクエスト処理
詳しい仕様についてはこちらのリンクを参照してください(すいません英語です…)。
2. MarketoでREST APIを使用できるようにしよう
Marketoに管理者でログインし、以下の3つの手順を実行します(それぞれリンク先を参照してください)。
3. スクリプト実行環境をセットアップしよう
以下の手順でスクリプト実行環境をセットアップします。
1. [Pythonがインストールされていない場合] Pythonをインストールする
- https://www.python.org/downloads/ からPython 3.x.xもしくは2.7.xをダウンロードし、インストールする
- ターミナル/コマンドプロンプトで以下のコマンドを実行し、バージョン情報が返ることを確認する
$ python -V
Python 2.7.13
2. pipをインストールする
- https://bootstrap.pypa.io/get-pip.py からget-pip.pyをダウンロードする
- ターミナル/コマンドプロンプトで "python get-pip.py" を実行してインストールする
3. Python Client for Marketo REST APIのインストール
- ターミナル/コマンドプロンプトで以下のコマンドを実行する
- MAC等でインストールに失敗する場合は sudo を付けて実行してみる
$ python -m pip install --ignore-installed marketorestpython
4. リードインポートをPythonで実装しよう
ではPythonでリードインポートのスクリプトを書いてみましょう。
テキストエディタで以下の内容を入力し、ファイル名をimportLeads.pyとして保存します。
なお、2行目は以下のとおり自分の環境に合わせた値に置き換えます。
- MunchkinアカウントID : 管理 > 統合 > Munchkin > トラッキングコード欄の「MunchkinアカウントID」
- Client ID : 管理 > 統合 > LaunchPoint > 作成したサービスの「詳細の表示」をクリック > 「Client ID」
- Client Secret : 管理 > 統合 > LaunchPoint > 作成したサービスの「詳細の表示」をクリック > 「Client Secret」
from marketorestpython.client import MarketoClient
mc = MarketoClient('MunchkinアカウントID', 'Client ID', 'Client Secret')
response = mc.execute(method='import_lead', file='./leads.csv', format='csv', lookupField='email', listId=None, partitionName='Default')
print str(response)
とても簡単。コードはたったの4行です。
5. テストしてみよう
では、CSVファイルを用意してテストしてみましょう。
テキストエディタに以下の内容を入力し、ファイル名をleads.csvとしてimportLeads.pyと同フォルダに保存します。
email,firstName,lastName
taro.test1@example.com,Taro,Test1
jiro.test2@example.com,Jiro,Test2
saburo.test3@example.com,Saburo,Test3
ターミナル/コマンドプロンプトでimportLeads.pyのあるフォルダに移動して以下のコマンドを実行します。status:Queuedのレスポンスが返ってくればOKです。
$ python importLeads.py
[{u'batchId': 1181, u'importId': u'1181', u'status': u'Queued'}]
しばらく待った後、Marketoのリードデータベースに上記リードが登録されていればテスト成功です!
6. 実運用に向けて
以上でエッセンシャルな部分の実装は終わりです。
実際に運用するにあたっては、以下のような実装も考えてみるといいかもしれません。
- Pythonスクリプト実行時にCSVファイル名を指定できるようにする
- 特定のフォルダにあるCSVファイルを全てインポートする
- CSVファイルサイズが10MBを超える場合はファイルを分割してからAPIをコールする
- CSVインポートのバッチ処理の完了確認を行う
みなさんも是非リードインポートを試してみてください。