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


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

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

    var request = require('request');
    var config = require("./mcConfig");
    
    var url = config.getContactBatchURL;
    
    var sBody = "--batch_c914-a60c-1877" + "
    " + 
    "Content-Type: application/http" + "
    " + 
    "Content-Transfer-Encoding: binary" + "
    " + 
    "
    " + 
    "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" + "
    " + 
    "Cache-Control: max-age=360" + "
    " + 
    "sap-contextid-accept: header" + "
    " + 
    "Accept: application/json" + "
    " + 
    "Accept-Language: en" + "
    " + 
    "DataServiceVersion: 2.0" + "
    " + 
    "MaxDataServiceVersion: 2.0" + "
    " + 
    "
    " + "
    " + 
    "--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的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    Verdi 看波形常用快捷操作
    Tensorflow系列——Saver的用法
    Verilog-分频器
    (原创)列主元Gauss消去法的通用程序
    冒泡排序算法
    ADC 与实际电压值的关系
    直流耦合 交流耦合 耦合
    当前不会命中断点,源代码与原始版本不同
    示波器触发
    在头文件#pragma comment(lib,"glaux.lib");编译器提示waring C4081: 应输入“newline“
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/10923384.html
Copyright © 2020-2023  润新知