如何用Java程式碼在SAP Marketing Cloud裡建立contact資料
我們可以使用SAP Marketing Cloud提供的Contact create OData API在第三方應用裡建立Contact主資料.
API地址:/sap/opu/odata/sap/CUAN_CONTACT_SRV/InteractionContacts
示例程式碼只有100多行:
import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URI;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.HttpClientBuilder;import sun.misc.BASE64Encoder;public class SimpleContactCreator { private ConfigUtil mConfigUtil = new ConfigUtil(); HttpClient m_httpClient; private String getBasicAuth(){ final String text = mConfigUtil.getConfig("user") + ":" + mConfigUtil.getConfig("password"); BASE64Encoder encoder = new BASE64Encoder(); String credentials = "basic " + encoder.encode(text.getBytes()); return credentials; } private HttpClient getHttpClient() { if (this.m_httpClient == null) { this.m_httpClient = HttpClientBuilder.create().build(); } return this.m_httpClient; } private String getCSRFToken(){ String url = mConfigUtil.getConfig("tokenurl"); System.out.println("fetch CSRF token via url: " + url); final HttpGet get = new HttpGet(url); get.setHeader("Authorization", getBasicAuth()); get.setHeader("Cache-Control", "no-cache"); get.setHeader("content-type", "application/json"); get.setHeader("Accept", "application/json"); get.setHeader("x-csrf-token", "fetch"); HttpResponse response; String token = null; try { response = getHttpClient().execute(get); StatusLine statusLine = response.getStatusLine(); int code = statusLine.getStatusCode(); System.out.println("Status code: " + code); System.out.println("reason: " + statusLine.getReasonPhrase()); token = response.getFirstHeader("x-csrf-token").getValue(); System.out.println("token: " + token); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException | UnsupportedOperationException e) { e.printStackTrace(); } return token; } public void run(String body){ String token = getCSRFToken(); createContact(token, body); } private void createContact(String token, String body){ final HttpPost post = new HttpPost( URI.create(mConfigUtil.getConfig("contactcreateurl"))); post.setHeader("Authorization", getBasicAuth()); post.setHeader("Content-Type", "application/json"); post.setHeader("X-CSRF-Token", token); HttpEntity entity = null; try { entity = new StringEntity(body); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } post.setEntity(entity); HttpResponse response = null; try { response = getHttpClient().execute(post); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Response statusCode for Batch => " + response.getStatusLine().getStatusCode()); } public static void main(String[] args) { SimpleContactCreator tool = new SimpleContactCreator(); String body = "{\"IsConsumer\":true," + "\"Filter\":{\"MarketingArea\":\"CXXGLOBAL\"}," + "\"__metadata\":{\"type\":\"CUAN_CONTACT_SRV.InteractionContact\"}," + "\"FirstName\":\"SAP Diablo\",\"LastName\":\"SAP Wang\",\"Country\":\"CN\"," + "\"EMailAddress\":\"seya@sap.com\",\"YY1_WECHATID_MPS\":\"i042416\"," + "\"YY1_FACEID_MPS\":\"d042416\"}"; tool.run(body); } }
上述程式碼裡,我硬編碼了一個Contact的姓為SAP Wang,名為SAP diablo,
執行之後, 列印出API消費成功的201程式碼:
硬編碼的資料能夠在Marketing Cloud裡觀察到:
上述原始碼在我的github上也能看到: https://github.com/i042416/JavaTwoPlusTwoEquals5/blob/master/src/partner1/SimpleContactCreator.java
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2645583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Java程式碼在SAP Marketing Cloud上建立Contact資料JavaCloud
- 使用postman修改SAP Marketing Cloud contact主資料PostmanCloud
- 使用nodejs建立Marketing Cloud的contact資料NodeJSCloud
- SAP Marketing Cloud裡的contact main facet是什麼意思CloudAI
- 使用postman建立Marketing Cloud的ContactPostmanCloud
- SAP Marketing Cloud的Contact匯入配置和資料合併原理Cloud
- SAP Marketing Cloud Contact 模型的匯入配置和資料合併原理Cloud模型
- Marketing Cloud contact主資料的csv匯入Cloud
- 使用nodejs實現OData的batch操作在Marketing Cloud裡讀取contact資訊NodeJSBATCloud
- Marketing Cloud的contact merge機制Cloud
- 使用nodejs對Marketing Cloud的contact主資料進行修改操作NodeJSCloud
- SAP Marketing Cloud 功能概述(一)Cloud
- SAP Marketing Cloud 功能概述(二)Cloud
- SAP Marketing Cloud 功能概述(三)Cloud
- SAP Marketing Cloud 功能概述(四)Cloud
- 在SAP HANA Express Edition裡建立資料庫表Express資料庫
- 在 SAP BTP 平臺 Neo 環境裡使用 SAP Cloud SDK 建立應用Cloud
- 如何在Marketing Cloud裡建立extension field擴充套件欄位Cloud套件
- 如何使用Chrome找到Marketing Cloud某個contact的guidChromeCloudGUI
- 如何讓某些使用者對Marketing Cloud的contact資料只能實施只讀操作Cloud
- 如何在呼叫Marketing Cloud contact建立API時增加對擴充套件欄位的支援CloudAPI套件
- 使用CDS view開發SAP Marketing contact的facet追溯工具View
- 使用簡單的Java程式碼在SAP C4C裡建立銷售訂單Java
- SAP Marketing Cloud功能簡述(二) : Target GroupCloud
- SAP Marketing Cloud Restful API SDK 使用案例分享CloudRESTAPI
- SAP HANA Cloud 學習教程之二: 如何往SAP BTP 上 HANA Cloud 資料庫表裡插入資料Cloud資料庫
- 如何在SAP Cloud Platform ABAP程式設計環境裡建立一個employeeCloudPlatform程式設計
- SAP Marketing Cloud功能簡述(一) : Contacts和ProfilesCloud
- 使用nodejs程式碼在SAP C4C裡建立Individual customerNodeJS
- 使用 csv 匯入的方式在 SAP S/4HANA 裡建立 employee 資料
- 如何在SAP S4HANA Cloud系統裡建立employeeCloud
- 如何使用 Node.js 訪問 SAP HANA Cloud 資料庫裡的資料Node.jsCloud資料庫
- SAP Marketing Cloud功能簡述(五) 銷售計劃管理Cloud
- 在 SAP Business Application Studio 裡訪問 SAP HANA Cloud 例項APPCloud
- 如何用SAP Cloud for Customer的手機App建立銷售訂單CloudAPP
- SAP Fiori裡Contact Support的按鈕渲染邏輯
- 如何用程式碼的方式取出SAP C4C銷售訂單建立後所有業務夥伴的資料
- SAP Cloud for Customer Cloud(C4C)Application Studio裡的程式碼除錯CloudAPP除錯