ExactTarget(Marketing Cloud)のpythonのSDKであるFuelSDK-Pythonを触ってみたのでメモっておきます。pythonのバージョンは2.7.xを使用してください。

インストールと設定

pipでインストールします。

次にAppCenterでAPI用のアプリケーションを作成して、ClientIDとClientSecretを取得します。アプリケーションの作成方法及びアプリケーションクレデンシャルの取得方法は過去記事を参照してください。

アプリケーションクレデンシャルの設定になりますが、以下の3つの設定方法があります。

  • 設定ファイルに予め書いておく方法
  • コード上で明示的に設定する方法
  • 環境変数で設定する方法

設定ファイルに予め書いておく方法

FuelSDK用のディレクトリ及び設定ファイルを作成します。

設定ファイルには以下のURLに記載されている内容をコピペしてClientIDとClientSecretを取得した内容に書き換えてください。

https://github.com/salesforce-marketingcloud/FuelSDK-Python/blob/master/FuelSDK/config.python.template

こんな感じになります↓

コード上で明示的に設定する方法

FuelSDK.ET_Clientをインスタンス化するときに以下のようにパラメータを設定します。

環境変数で設定する方法

herokuとかだとこの方法ですかね。

DataExtensionのレコード抽出

ちなみにDataExtensionのdescribeはprops省略OKですが、レコード抽出はprops必須です。また、search_filterでオペレータにINを使う場合は配列を指定できますが、この配列は必ず2つ以上の要素を含むようにしてください。要素が1つだけの場合はequalsを使うようにしないとエラーになっちゃいます。

DataExtensionのdescribe

DataExtensionの全カラムを取得したいときのサンプルはこんな感じ。

ropsのところは取得したいカラムの情報を入力することになりますが、省略すると各カラムの全パラメータを取得できます。

DataExtensionレコードの作成

上記ではpropsに入れる属性値として単一のディクショナリをセットしていますが、リスト+ディクショナリの形で複数レコードを登録することも可能です。

Subscriberの抽出

全DataExtensionの取得

SOAPメッセージのデバッグしたいとき

ET_Clientのコンストラクタのパラメータでdebug=TrueをセットすればOK。