源代码如下:

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

使用nodejs创建Marketing Cloud的contact数据的更多相关文章

  1. 如何让某些用户对Marketing Cloud的contact数据只能实施只读操作

    打开maintain business role这个应用: 创建一个新的business role,然后添加下列这几个catalogs: SAP_CEC_BC_MKT_ADM_PC Marketing ...

  2. 使用postman创建Marketing Cloud的Contact

    首先在Marketing Cloud的UI上创建一个contact: 观察Chrome开发者工具network标签页里的HTTP请求: https://jerry.gcdemo.hybris.com/ ...

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

    假设在Marketing Cloud有这样一个contact主数据: 现在需求是使用编程语言比如nodejs修改这个contact实例的高亮属性. 代码如下: var config = require ...

  4. Marketing Cloud的contact merge机制

    Marketing Cloud的contact支持多种多样的数据源,如下图所示: SAP Hybris Commerce SAP ERP SAP Cloud for Customer SAP Gigy ...

  5. SAP Marketing Cloud的Contact导入配置和数据合并原理

    SAP很多系统的主数据都支持从外部系统导入,SAP Marketing Cloud也是如此,contact主数据可以来自Hybris Commerce,CRM,ERP或者Twitter,Faceboo ...

  6. 如何使用Chrome开发者工具找到Marketing Cloud某个contact的guid

    我们使用nodejs对contact进行修改时,需要指定待修改contact实例的guid. 这个guid属于technical属性,在Marketing Cloud UI上默认情况下不可见.如何找到 ...

  7. SAP Marketing Cloud功能简述(二) : Target Group

    这个系列的第一篇文章 SAP Marketing Cloud功能简述(一) : Contacts和Profiles,我向大家介绍了SAP Marketing Cloud里的Contacts和Profi ...

  8. 如何使用Marketing Cloud的扩展字段作为搜索条件进行搜索

    需求:我在Marketing Cloud的contact模型上用custom field这个应用创建了一个Extension field,名称为微信ID. 现在客户的需求是使用这个字段作为过滤条件进行 ...

  9. 如何用Java代码在SAP Marketing Cloud里创建contact数据

    我们可以使用SAP Marketing Cloud提供的Contact create OData API在第三方应用里创建Contact主数据. API地址:/sap/opu/odata/sap/CU ...

随机推荐

  1. python select模块

    Python select 一.前言 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句 ...

  2. C++ STL 已序区间查找算法

    #include <iostream>#include <algorithm>#include <list>#include <functional># ...

  3. Block的示例学习

    @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *btn; - (IBAction)reset:( ...

  4. 建立自己的数据类型——C结构体归纳

    一.建立结构体类型 1.申明结构体类型 struct 结构体名 { 成员表列(类型名 成员名:); }: 例如: struct Person { char name; int age; char se ...

  5. ffmpeg学习笔记-Linux下编译Android动态库

    Android平台要使用ffmpeg就需要编译生成动态库,这里采用Ubuntu编译Android动态库 文件准备 要编译生成Android需要以下文件 NDK ffmpeg源代码 NDK下载 NDK可 ...

  6. Odoo 13 released..

    origin https://medium.com/@jc_57445/odoo-13-is-fantastic-f2b421696b49 Most striking changes The most ...

  7. C#进阶系列—WebApi

    参考学习优秀博客地址:http://www.cnblogs.com/landeanfen/p/5177176.html

  8. Linux中 cmake-3.x 编译安装以及man page添加

    首先回顾一下 cmake-2.x 的编译安装. ================ cmake-2.x编译安装说明 ================编译安装的命令: ./bootstrap --pref ...

  9. centos7 安装jmeter5.1

    前提条件:安装了jdk1.8.因为jmeter5.1需要的环境就是jdk1.8,官网有写的. 1.下载jmeter5.1的安装包 下载地址:https://jmeter.apache.org/down ...

  10. JS利用async、await处理少见的登录业务逻辑

    在用uniapp开发一个项目时,有这样一个需求:用户首次登录后,uniapp自动保存用户名密码,之后不管是再次打开项目(打开项目时登录状态已失效)还是 请求接口(接口返回登录失效)时,都会先自动默认的 ...