使用nodejs對Marketing Cloud的contact主資料進行修改操作

i042416發表於2019-05-25

假設在Marketing Cloud有這樣一個contact主資料:

使用nodejs對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”:

執行之後這個屬性被成功更新了:

使用nodejs對Marketing Cloud的contact主資料進行修改操作
使用nodejs對Marketing Cloud的contact主資料進行修改操作

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":


使用nodejs對Marketing Cloud的contact主資料進行修改操作


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2645490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章