1. 程式人生 > >使用nodejs對Marketing Cloud的contact主資料進行修改操作

使用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的原創文章,請關注公眾號"汪子熙":

相關推薦

使用nodejsMarketing Cloud的contact資料進行修改操作

假設在Marketing Cloud有這樣一個contact主資料: 現在需求是使用程式語言比如nodejs修改這個contac

使用 自定義的 ContentProvider 進行應用間的資料互動(另一個APP當前的應用資料進行修改,查詢),getType()等內容的講解

本部落格內容 應用B 對 應用A的資料庫資料進行插入和查詢(其他操作簡略不寫) bookProject 應用A 看一下目錄結構 Book_TABLE.java 關鍵點:private static final String BOOK_DB = "create

使用 自定義的 ContentProvider 進行應用間的資料互動(另一個APP當前的應用資料進行修改,查詢),getType()等內容的講解

本部落格內容 應用B 對 應用A的資料庫資料進行插入和查詢(其他操作簡略不寫) bookProject 應用A 看一下目錄結構 Book_TABLE.java 關鍵點:private static final String BOOK_DB = "create

oracle一個表的多行資料進行修改

1、第一種使用迴圈修改表 --遍歷一個表並作修改 declare bl varchar(100); --宣告一個字串變數 BEGIN FOR L_RECORD IN (select * from ys

使用C#MongoDB中的資料進行查詢,修改操作

首先,使用的是官方提供的C#訪問元件https://github.com/mongodb/mongo-csharp-driver 然後、編譯後引用MongoDB.Bson.dll及MongoDB.Driver.dll,並在cs檔案中宣告引用 using MongoDB.

C#DataGridView中的資料進行新增、修改、刪除操作c#操作datatable

1.建立表 DataSet ds=new DataSet(); DataTable dt=new DataTable("User"); ds.Add(dt); dt.Columns.Add("user_name",typeof(string)); dt.Columns.Ad

web前端之Ajax遍歷json後每一條資料進行相應的修改和刪除

web前端之ajax遍歷json後對每一條資料進行相應的修改和刪除 function serviceUser(){ $('.ergodicPersonList').remove(); $.ajax({ url: "/b

不屬於真正的連結串列去重,未原來的連結串列進行修改,而是另外建立了一個連結串列

來自:https://blog.csdn.net/futureflyme/article/details/72780789 package interview; import java.util.*; //定義節點結構 class Node { int data; N

DataFrame中的資料進行按區間切分進行分組

import pandas as pd #設定切分割槽域 listBins = [0, 10, 20, 30, 40, 50, 60, 1000000] #設定切分後對應標籤 listLabels = ['0_10','11_20','21_30','31_40','41_50','51

通過字串生成Style並設定Style實現ListBox裡面的呈現進行修改

最近專案中需要實現對ListBox呈現內容的外觀進行動態的修改,實現方式是通過修改DataTemplate裡面控制元件的Style,具體實現如下: Xaml檔案: <Window x:Class="StrStyle.MainWindow" xmlns="ht

python裡字典的key值進行修改的方法

參考瞭如下網站的方法,自己簡單改寫了對應函式。 https://stackoverflow.com/questions/21201661/key-must-not-contain-error-in-pymongo 修改字典的key,最好的方式就是新增一個key-value,value為之前的值;

JSONP 跨域Ajax請求,利用js獲取到的資料進行處理.

先看看獲取到的資料: 前端內容ajax 使用jsonp跨域請求方式,理解如下: JSONP本質: 利用script標籤src跨域訪問,獲得一個回撥函式,再利用回撥函式引數內容獲取返回的資料args img src   亦可以, Form src會被本地同源策略阻

layui中table中的資料進行判斷(0、1)轉換為提示資訊

需要把“1”改成中文漢字: 在 done方法裡面進行資料渲染: layui.use('table', function(){ var table = layui.table ,form = layui.form; tab

java 時間資料進行操作

Date time = new Date(); Calendar cal = Calendar.getInstance(); if (time != null) { cal.setTime(time); cal.set(Calendar.HOUR_OF_DAY, 23); cal.se

.NET Core微服務之路:讓我們上一個Demo通訊進行修改,完成RPC通訊

 最近一段時間有些事情耽擱了更新,抱歉各位了。   上一篇我們簡單的介紹了DotNetty通訊框架,並簡單的介紹了基於DotNetty實現了迴路(Echo)通訊過程。   我們來回憶一下上一個專案的整個流程: 當服務端啟動後,繫結並監聽(READ)設定的埠,比如1889。

Laravel5.5+ 陣列(物件陣列)資料進行分頁

在使用 Laravel 時,除了在 ORM 中使用分頁外,有些時候也需要對用原生 sql 查詢的資料進行分頁,該查詢資料可能是陣列,也可能是物件陣列. 支援陣列格式: $goods = [ [],[],[] ];  陣

環形佇列——int型別的資料進行操作

#ifndef MYQUEUE_H #define MYQUEUQ_H class MyQueue { public: MyQueue(int queueCapacity); //InitQueue(&Q) 建立佇列 virtual ~MyQueue();

PriorityQueue如何物件型別的資料進行排序

public class Student implements Comparable<Student> {String name;                    //先寫出一個Student類,然後把Student物件加進PriorityQueue的容器裡

Python錶格的資料進行處理然後在Excel中製作柱形圖

# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') from matplotlib.font_manager import FontProperties import

pythonPASCAL VOC標註資料進行統計

用於統計訓練資料中的類別,以及所有目標的個數:# coding:utf-8 import xml.etree.cElementTree as ET import os from collections