我们先来看看Marketing Cloud系统里的contact信息:

一共1218374条数据。

我们用如下的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文件:

得到结果:

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

使用nodejs实现OData的batch操作在Marketing Cloud里读取contact信息的更多相关文章

  1. 使用nodejs对Marketing Cloud的contact主数据进行修改操作

    假设在Marketing Cloud有这样一个contact主数据: 现在需求是使用编程语言比如nodejs修改这个contact实例的高亮属性. 代码如下: var config = require ...

  2. spring batch 以游标的方式 数据库读取数据 然后写入目标数据库

    前面关于Spring Batch的文章,讲述了SpringBatch对Flat.XML等文件的读写操作,本文将和大家一起讨论Spring Batch对DB的读写操作.Spring Batch对DB数据 ...

  3. winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

    最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...

  4. 三点经验:长时间运行函数需要随时发射信号报告进度,以及设置bool变量随时可以退出,每做一步操作必须及时记录和处理相关信息

    三点经验:长时间运行函数需要随时发射信号报告进度,以及设置bool变量随时可以退出,每做一步操作必须及时记录和处理相关信息 不能到最后一起处理,否则万一中间出错了,这个记录状态就全部都乱了.

  5. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  6. Java操作数据库——在JDBC里使用事务

    Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...

  7. 使用nodejs创建Marketing Cloud的contact数据

    源代码如下: var config = require("./mcConfig"); var request = require('request'); var url = con ...

  8. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  9. 【nodejs学习】1.文件操作

    1.小文件拷贝,使用nodejs内置模块 var fs = require('fs'); function copy(src, dst){ fs.writeFileSync(dst, fs.readF ...

随机推荐

  1. ubuntu tensorflow cpu faster-rcnn 测试自己训练的模型

    (flappbird) luo@luo-All-Series:~/MyFile/tf-faster-rcnn_box$ (flappbird) luo@luo-All-Series:~/MyFile/ ...

  2. subprocess以及常用的封装函数

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn.os.popen.popen2..commands. ...

  3. 【leetcode_easy】551. Student Attendance Record I

    problem 551. Student Attendance Record I 题意: solution: class Solution { public: bool checkRecord(str ...

  4. 让IIS支持解析.json格式文件

    原文出处链接及本声明. 原文链接:https://blog.csdn.net/jumtre/article/details/72630730 1.IIS内点击网站进入网站主页设置界面: 2.双击MIM ...

  5. Cache数据库新增用户并分配权限(Caché)

    1.通过浏览器登录管理中心,Caché自带的客户端工具是网页的,访问地址:     http://localhost:57772/csp/sys/UtilHome.csp 2.选择功能链接:系统管理- ...

  6. Java程序员壁纸-Java开发

  7. 剑指offer难题代码

    重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,前重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.假如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序 ...

  8. thinkphp5 默认配置代码

    <?php // +---------------------------------------------------------------------- // | ThinkPHP [ ...

  9. go string类型的特性

    参考文章: http://c.biancheng.net/view/36.html 1. 获取ascii类型字符的长度个数和获取utf8类型字符长度的个数 a. len("咪咪") ...

  10. zookeeper的shell下操作

    zookeeper的shell下操作 进入%ZK_HOME%/bin 执行zkCli.sh [-server ip:port] #如不指定,则连接本机   创建: create [-s] [-e] p ...