ITPub博客

首页 > 应用开发 > IT综合 > 使用nodejs对Marketing Cloud的contact主数据进行修改操作

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

原创 IT综合 作者:i042416 时间:2019-05-25 10:04:30 0 删除 编辑

假设在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的原创文章,请关注公众号"汪子熙":



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24475491/viewspace-2645490/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-01-20

  • 博文量
    695
  • 访问量
    269190