开发者社区> python技术君> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SAP Marketing Cloud Restful API SDK 使用案例分享(一)

简介: SAP Marketing Cloud Restful API SDK 使用案例分享
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

本文介绍笔者在 SAP Marketing Cloud 工作项目中使用 Restful API SDK 过程中积累的一些使用经验。


成功登录 SAP Marketing Cloud 系统之后,可以在菜单"快速启动"->"Manage Contacts"里找到Marketing Cloud contact管理应用。单击:

image.png

这里就能看到该系统里所有的contact列表了。

左边的1218377是系统contact总个数,正下方Create就是新建按钮,可以通过这个按钮打开contact创建页面。右边的search bar就是一个Google风格的模糊搜索入口。

image.png

这个界面第一次使用的话需要注意一些小技巧。

image.png

上图高亮的四个控件实际上是四个过滤器,例如当前系统里并不存在状态为For Review的contact,数字为0,因此单击这个过滤器后:

image.png

表格会显示0条数据。这是用户期望的行为,因此大家如果看到表格是空的,不要觉得奇怪。

image.png

当单击某条contact数据的超链接后,

image.png

会跳转到contact明细页面. 下图url里高亮的guid就是这条contact在SAP数据库里的主键值。

image.png

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

假设在Marketing Cloud有这样一个contact主数据:

image.png

现在需求是使用编程语言比如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”:

执行之后这个属性被成功更新了:

image.png

image.png




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SAP Commerce Cloud OCC API UnknownResourceError 错误
SAP Commerce Cloud OCC API UnknownResourceError 错误
0 0
SAP Marketing Cloud Restful API SDK 使用案例分享(二)
SAP Marketing Cloud Restful API SDK 使用案例分享
0 0
SAP Commerce Cloud 里的 Site API 调用方式讲解
Multiple Country Site Support 为管理包含多个内容目录并使用内容继承的站点提供原生支持。
0 0
什么是 SAP BAPI
SAP BAPI, 全称为 Business Application Programming Interface(业务应用程序编程接口),是 SAP 产品中业务对象模型的标准接口。
0 0
SAP API Business Hub 上测试 API 的一些常见问题
SAP API Business Hub 上测试 API 的一些常见问题
0 0
使用 SAP Cloud SDK 连接 OData 服务
使用 SAP Cloud SDK 连接 OData 服务
0 0
SAP Commerce Cloud 导入消费OCC API需要使用的credentials
SAP Commerce Cloud 导入消费OCC API需要使用的credentials
0 0
如何在SAP C4C里使用ABSL消费第三方Restful API
如何在SAP C4C里使用ABSL消费第三方Restful API
0 0
Marketing Cloud demo环境和API使用方法说明
version 1.0作者:Wang Jerry更多问题请联系我 demo 系统url:https:/jerry.hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html 用户名/密码:Jerry1/Diablo1登录成功之后,可以在菜单"快速启动"->"Manage Contacts"里找到Marketing Cloud contact管理应用。
353 0
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
APICloud服务CAF开发者
立即下载
阿里云 API 精选手册(Alibaba Cloud API Playbook)
立即下载
API 平台的安全实践
立即下载


http://www.vxiaotou.com