ExactTargetのNode.js用SDKであるFuelSDK-NodeとExactTarget APIに関する備忘録
FuelSDK-Nodeの使用例について
RubyやPythonのSDKにはSDKのリポジトリに使用例が置いてありますが、FuelSDK-NodeはFuelSDK-Node-Auth、FuelSDK-Node-SOAP、FuelSDK-Node-RESTの3要素で成り立っている上にそれぞれの利用例は全てnode-sdk-backbone-appのroutesディレクトリ内に置かれています。※ちなみにcodeを表示するのではなく実行するモードでnode-sdk-backbone-appを実行しても、実行されずコードが表示され続ける不具合があります。これに関してはforkしたリポジトリの方で修正済みなので良ければお使いください。↓ tzmfreedom/node-sdk-backbone-app
ExactTargetのAPIで取得する方法に関して
APIで抽出できる各オブジェクトのフィールドはdescribeメソッドによって取得可能です。var ET_Client = require('fuelsdk-node');
var client = new ET_Client('{client_id}', '{client_secret}', '{stack}');
client.SoapClient.describe(
'Subscriber',
function(err, response) {
var props = response.body.ObjectDefinition.Properties.filter(function(prop) {
return prop.IsRetrievable === 'true';
});
}
);
ハマりどころとしては、IsRetrievableの値はブーリアンではなく、文字列の’true’, ‘false’になるので判別する場合は注意が必要。
Sendable DataExtensionにSubscriberKeyをマッピングする場合
Subscriber側のマッピングフィールドにSubscriberKeyをマッピングする場合は、SendableSubscriberField.Nameには”Subscriber Key”をセットする必要があります。Sendable DataExtensionをRetrieveで抽出するとSendableSubscriberField.Nameには”_SubscriberKey”という文字列が入っていますが、これをそのまま利用するのはNG。
SOAPだとこんな感じ
<soap:Envelope ...>
<soap:Header>
...
</soap:Header>
<soap:Body>
<CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Objects xsi:type="DataExtension">
...
<SendableSubscriberField>
<Name>Subscriber Key</Name>
</SendableSubscriberField>
</Objects>
</CreateRequest>
</soap:Body>
</soap:Envelope>