mysql odata nodejs_使用nodejs实现OData的batch操作在Marketing Cloud里读取contact信息

我们先来看看Marketing Cloud系统里的contact信息: 一共1218374条数据。

5b50842f0f93a5d7e4237fabe72fb705.png

我们用如下的nodejs代码通过OData来获取这些数据:

var request = require('request');

var config = require("./mcConfig");

var url = config.getContactBatchURL;

var sBody = "--batch_c914-a60c-1877" + "\n" +

"Content-Type: application/http" + "\n" +

"Content-Transfer-Encoding: binary" + "\n" +

"\n" +

"GET InteractionContacts?sap-client=100&$skip=0&$top=2&$select=ImageURL%2cName%2cContactLevelName%2cCountryName%2cCity%2cEMailAddress%2cPhoneNumber%2cMobilePhoneNumber%2cCorporateAccountName%2cInteractionContactUUID%2cRelationship%2cType&$inlinecount=allpages HTTP/1.1" +

"sap-cancel-on-close: true" + "\n" +

"Cache-Control: max-age=360" + "\n" +

"sap-contextid-accept: header" + "\n" +

"Accept: application/json" + "\n" +

"Accept-Language: en" + "\n" +

"DataServiceVersion: 2.0" + "\n" +

"MaxDataServiceVersion: 2.0" + "\n" +

"\n" + "\n" +

"--batch_c914-a60c-1877--";

var getContactOptions = {

url: url,

method: "POST",

json:false,

headers: {

"content-type": "multipart/mixed;boundary=batch_c914-a60c-1877",

'Authorization': 'Basic ' + new Buffer(config.user + ":" + config.password).toString('base64')

},

body: sBody

};

function getContact() {

return new Promise(function(resolve,reject){

var requestC = request.defaults({jar: true});

console.log("Step1: get contact via url: " + url );

requestC(getContactOptions,function(error,response,body){

if( error){

console.log("error occurred: " + error);

reject(error);

}

console.log("response:" + body);

var nStartIndex = body.indexOf("{");

var nLastIndex = body.lastIndexOf("}");

if( nStartIndex < 0 || nLastIndex < 0)

return;

var sPayload = body.substring(nStartIndex, ++nLastIndex);

resolve(JSON.parse(sPayload));

});

});

}

function displayResult(oResult){

console.log(oResult);

}

getContact().then(displayResult);

使用node命令直接执行这个.js文件:

175f44a8501258fc24c61a2ef8ed5777.png

得到结果:

8a817b839fd3775ad99d280b71cc2e3f.png

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

41492ef04729085183e07e9b5ec99556.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值