zoukankan      html  css  js  c++  java
  • 使用nodejs创建Marketing Cloud的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 createContact(token){
    	return new Promise(function(resolve, reject){
    		var oPostData = {"CountryCode":"CN",
                        "City":"Chengdu",
                        "FirstName":"Jerry4",
                        "LastName":"Wang2",
                        "PostalCode":"610093",
                        "RegionCode":"",
                        "Street":"天府软件园",
                        "HouseNumber":"天府软件园",
                        "DateofBirth":null,
                        "ContactPersonFacets":[
                          {"Id":"jerry1@sap.com",
                           "IdOrigin":"EMAIL",
                           "Obsolete":false,
                           "Invalid":false},
                           {"Id":"",
                           "IdOrigin":"PHONE",
                           "Obsolete":false,
                           "Invalid":false},
                           {"Id":"",
                           "IdOrigin":"MOBILE",
                           "Obsolete":false,
                           "Invalid":false},
                           {"Id":"",
                           "IdOrigin":"FAX",
                           "Obsolete":false,
                           "Invalid":false}
                           ],
                           "IsConsumer":true,
                           "Filter":{
                            "MarketingAreaId":"CXXGLOBAL"
                          }
                        };
    		var requestC = request.defaults({jar: true});
            var createOptions = {
                  url: config.createContactURL,
                  method: "POST",
                  json:true,
                  headers: {
                      "content-type": "application/json",
                      'x-csrf-token': token
                  },
                  body:oPostData
            };
            requestC(createOptions,function(error,response,data){
                if(error){
                    reject(error.message);
                }else {
                   var oCreatedContact = data;
                   console.log("created contact ID: " + oCreatedContact.d.ContactPersonId);
                   resolve(data);
                }
            });
    	});
    }
    
    getToken().then(createContact).catch((error) =>{
      console.log("error: " + error.message);
    });
    

    这里我把创建的contact的名称字段硬编码成Jerry4:

    使用nodejs执行这个js文件,输出成功创建的contact guid:

    在Marketing Cloud UI上看到这个创建成功的contact:

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

  • 相关阅读:
    浅析String.intern()方法
    com.alibaba.druid.pool.DruidPooledConnection cannot be cast to oracle.jdbc.OracleConnection 异常解决办法
    ChannelEventRunnable handle RECEIVED operation error, channel is NettyChannel解决方法
    jsch channel is not opened原因及解决
    学习地址(oraclemysqllinux)
    python中数据分析常用函数整理
    Python之使用Pandas库实现MySQL数据库的读写
    Python数据分析
    如何用sql查询出连续三个月金额大于50的记录
    【Python项目实战】Pandas:让你像写SQL一样做数据分析(一)
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/10923366.html
Copyright © 2011-2022 走看看