假设在Marketing Cloud有这样一个contact主数据:

现在需求是使用编程语言比如nodejs修改这个contact实例的高亮属性。

代码如下:


var config = require("./mcConfig");
var request = require('request'); var url = config.tokenURL; console.log("user: " + config.user + " password: " + config.password);
var getTokenOptions = {
url: url,
method: "GET",
json:true,
headers: {
'Authorization': 'Basic ' + new Buffer(config.user + ":" + config.password).toString('base64'),
"content-type": "application/json",
"x-csrf-token" :"fetch"
}
}; function getToken() {
return new Promise(function(resolve,reject){
var requestC = request.defaults({jar: true});
console.log("Step1: get csrf token via url: " + url ); requestC(getTokenOptions,function(error,response,body){
var csrfToken = response.headers['x-csrf-token'];
if(!csrfToken){
reject({message:"token fetch error: " + error});
return;
}
console.log("Step1: csrf token got: " + csrfToken);
resolve(csrfToken);
});
});
} function updateContact(token){
return new Promise(function(resolve, reject){
var sPostData = "--batch_1f7d-bd35-caed" + "\n" +
"Content-Type: multipart/mixed; boundary=changeset_8f9e-9a44-9f9e" + "\n" +
"\n" +
"--changeset_8f9e-9a44-9f9e" + "\n" +
"Content-Type: application/http" + "\n" +
"Content-Transfer-Encoding: binary" + "\n" +
"\n" +
"MERGE Consumers('02000A21209F1EE99CDF1A1FC9AA8065')?sap-client=100 HTTP/1.1" + "\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" +
"x-csrf-token: fQ2Pwfmf0K_LVYoKV9QYUw==" + "\n" +
"Content-Type: application/json" + "\n" +
//"Content-Length: 215" + "\n" +
"\n" +
"{\"YY1_CustomerType_ENH\":\"Jerry测试1\"}" + "\n" +
"--changeset_8f9e-9a44-9f9e--" + "\n" +
"\n" +
"--batch_1f7d-bd35-caed--"; var requestC = request.defaults({jar: true});
var createOptions = {
url: config.updateContactURL,
method: "POST",
json:false,
headers: {
"content-type": "multipart/mixed;boundary=batch_1f7d-bd35-caed",
'x-csrf-token': token
},
body:sPostData
};
requestC(createOptions,function(error,response,data){
if(error){
reject(error.message);
}else {
debugger;
console.log("Contact updated successfully");
resolve(data);
}
});
});
} getToken().then(updateContact).catch((error) =>{
console.log("error: " + error.message);
});

我在nodejs代码里把需要更改的字段值赋为"Jerry测试1”:

执行之后这个属性被成功更新了:

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

最新文章

  1. html5 websocket 实时日志推送
  2. jetty 内嵌服务
  3. servlet学习笔记_3
  4. OP和DBA相关的一些有用资源
  5. Springmvc返回JSON乱码问号
  6. 后台首页品字形(frameset)框架搭建
  7. oracle中如何对字符串进行去除空格的方法
  8. 【BZOJ】【1085】【SCOI2005】骑士精神
  9. ping详解
  10. VirtualBox虚拟机网络设置
  11. 使用docker搭建kafka环境
  12. html绑定
  13. Cow Rectangles
  14. 【javascript】ajax的参数
  15. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in position 99: invalid continuation byte
  16. Dubbo中SPI扩展机制解析
  17. k-近邻算法概述
  18. Bootstrap 固定底部导航栏菜单
  19. win10 linux 子系统 所在 目录
  20. 前端开发面试题-JavaScript(转载)

热门文章

  1. delphi DBTreeview与数据库连接的数据存取
  2. [C++]数据结构:线性表之(单)链表
  3. JavaScript中new运算符的实现
  4. 卸载未能成功安装的mysql时的解决方案
  5. Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree)
  6. Docker 常用命令和Dockerfile
  7. 【第一季】CH06_FPGA设计Verilog基础(三)
  8. pb相关小技巧或用法
  9. Spring MVC <context:annotation-config> 与 <context:component-scan>
  10. shell使用ps -ef|grep xxx时不显示grep xxx进程的方法