Python Client for Marketo REST APIを使ってリードインポートを実装しよう | Community
Skip to main content
July 27, 2017

Python Client for Marketo REST APIを使ってリードインポートを実装しよう

  • July 27, 2017
  • 1 reply
  • 191 views

こんにちは。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つの手順を実行します(それぞれリンク先を参照してください)。

  1. API専用ユーザーロールを作成する
  2. API専用ユーザーを作成する
  3. REST APIで使用するカスタムサービスを作成する

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インポートのバッチ処理の完了確認を行う

みなさんも是非リードインポートを試してみてください。

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

Taishi_Yamada
Level 6
July 27, 2017

@Tasuku Otani さん、こんにちは

このClient便利ですよね。私もPython用のライブラリさがしてこれに行き着きました。たまに使ってます。

アセットやプログラムの操作にいちいちAPIを使うことは私の場合は今のところ無いのですが、データを取る方(入れる方はさほどない)は、たまに使ってます。

-Yamada