`
JerryWang_SAP
  • 浏览: 1032452 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

 

 
0
0
分享到:
评论

相关推荐

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打

    在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打印,最后可参考资料偏少,由于项目紧急且对NodeJS的熟悉程度目前也还不够,所以转而使用比较...

    nodejs os 操作系统模块示例

    这是nodejs操作系统os的示例模块,该文件包含了nodejs对os操作系统的各种调用方法示例,在安装好nodejs的前提下,可以直接使用ts-node运行查看

    NodeJs使用mongoose操作mongodb

    Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具。 本资源代码配合博客使用:https://blog.csdn.net/qq_25479327/article/details/81148772 NodeJs使用mongoose操作mongodb

    nodejs 数据库操作封装下载

    nodejs 数据库操作分装下载 nodejs 数据库操作分装下载 nodejs 数据库操作分装下载

    cloudflare-bypass:NodeJS工具绕过Cloudflare iUam V2

    绕云绕道 一个NodeJS工具绕过Cloudflare IUAM v2。这个怎么运作JS挑战( jsch )包含多个串联JavaScript挑战。 我正在尝试对所有这些进行逆向工程,在可以看到已经逆转的所有挑战。 验证码挑战可以在JS挑战之后提出...

    tencentcloud-sdk-nodejs-node.js

    Tencent Cloud API 3.0 SDK for Node.js node.js node.js node.js node.js node.js

    使用nodejs封装pg数据库操作类(TS编译后JavaScript源码),

    使用nodejs封装pg数据库操作类(TS编译后JavaScript源码), 使用该类,可以进行数据库增删改查操作, 并且封装类分页查询,等便捷sql查询。 备注:过于复杂sql,需要调用clientQuery查询

    spring-cloud-contract-nodejs:Spring Cloud Contract与Node JS应用程序

    从分叉 书店 Bookstore是一个简单的Web应用程序,其中包括Express RESTful API... 单击阅读文章,其中简短提醒您什么是合同测试,Spring Cloud Contract如何实现它以及如何在多语言世界中使用Spring Cloud Contract。

    nodejs封装好的mysql数据库模块,带mysql连接池以及百万测试数据

    本模块基于Node.js实现了对MySQL数据库的封装,利用了mysql连接池来优化性能,并且包含了用于测试的百万级数据,确保了在大数据量场景下的稳定性和效率。以下将详细介绍该模块的关键知识点: 1. **Node.js与MySQL**...

    NodeJS学习笔记和代码

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"NodeJS学习笔记和代码"的压缩包显然包含了帮助初学者掌握NodeJS基础知识和实践技能的所有必要资料。 ...

    基于Nodejs的智慧果园数据采控系统源代码.zip

    基于Nodejs的智慧果园数据采控系统源代码基于Nodejs的智慧果园数据采控系统源代码基于Nodejs的智慧果园数据采控系统源代码基于Nodejs的智慧果园数据采控系统源代码基于Nodejs的智慧果园数据采控系统源代码。...

    NodeJS整理手册文档

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,从而打破了JavaScript只能在浏览器中运行的传统。本"NodeJS整理手册文档"旨在为对NodeJS感兴趣的朋友们提供一...

    nodejs使用ES6封装一个通用的对数据库的操作

    nodejs使用ES6封装一个对数据库的增删改查操作,使用模块化开发。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    nodejs.pdf nodejs初级教程 nodejs初级教程

    nodejs初级教程

    iot-nodejs, 使用nodejs连接到IBM的客户端库和示例.zip

    iot-nodejs, 使用nodejs连接到IBM的客户端库和示例 node.js-客户端库node.js 客户机用于... 以下库包含有关使用 nodejs ibmiotf node 与组织内的设备和应用程序进行交互的说明和指导。客户端库分为三部分:设备。Manage

    Nodejs操作Sqlite3数据库封装

    本篇文章将深入探讨如何使用`node-sqlite3`库来操作SQLite3数据库,并对其进行封装,以便于在实际项目中更高效地使用。 首先,`node-sqlite3`是Node.js的一个数据库驱动,它提供了与SQLite3数据库交互的接口。安装...

    nodejs使用ES6中的import封装对mysql的操作

    nodejs使用ES6中的import进行引入模块,首先对文件的后缀进行更改为.mjs,其次需要在配置文件目录中添加"type": "module",再启动node服务的时候会发生改变 需要添加--experimental-modules如(nodemon --experimental...

    NodeJS操作Kafka(已验证)

    在本文中,我们将深入探讨如何使用NodeJS与Apache Kafka进行交互。Kafka是一个分布式流处理平台,常用于构建实时数据管道和流应用。而NodeJS是JavaScript的服务器端实现,可以方便地创建高性能网络应用。结合这两者...

    typescript使用nodejs实现简繁体转换

    typescript使用nodejs实现简繁体转换,可以转换子文件夹, 运行方式:将文件复制到工程的files文件夹,运行node app.js "" s2t(简体转繁体)或node app.js "" t2s(繁体转简体)即可

    tencentcloud-sdk-nodejs-intl-zh-CN

    适用于Node.js的腾讯云SDK可帮助Node.js开发人员轻松调试和使用TencentCloud API。 本文档介绍了适用于Node.js的腾讯云SDK,以及如何通过提供的代码示例快速使用它。依赖环境NODEJS 7.10.1或更高版本在腾讯云控制台...

Global site tag (gtag.js) - Google Analytics