国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何用Java代碼在SAP Marketing Cloud里創建contact數據

princekin / 3776人閱讀

摘要:我們可以使用提供的在第三方應用里創建主數據地址示例代碼只有多行上述代碼里我硬編碼了一個的姓為名為執行之后打印出消費成功的代碼硬編碼的數據能夠在里觀察到上述源代碼在我的上也能看到要獲取更多的原創文章,請關注公眾號汪子熙

我們可以使用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/Ja...

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74651.html

相關文章

  • 使用jMeter對基于SAP ID service進行Authentication的Restful

    摘要:因為這個項目最后會在年月日于上海舉行的云大會上展示,所以當時完成集成工作后心想,還是得提前測試一下咱們的在響應并發請求時的性能做到心里有數。 這篇文章本來Jerry只在SAP社區上寫了英文版的,可以通過點擊文末的閱讀原文獲得。后來有兩位做Marketing Cloud開發的德國同事,寫郵件詢問關于文章的更多細節,聲稱這種方式對他們自己的API性能測試很有用,所以我覺得還是值得用中文再寫...

    longmon 評論0 收藏0
  • 容器,Docker, Kubernetes和Kyma,以及Kyma對SAP的意義

    摘要:該標準主要分為運行時標準和容器鏡像標準。事件注冊好之后,使用微服務架構實現事件的監聽者消費者。 大家好,今天非常高興能給大家做一個關于Kyma的技術分享。這個session的audience主要是針對使用咱們成都研究院使用Java和nodejs等技術棧做微服務開發的同事們。對于在ABAP netweaver上做SAP傳統開發的同事們來說,這個session可以讓大家開闊一下眼界。 這是...

    xiaokai 評論0 收藏0
  • 容器,Docker, Kubernetes和Kyma,以及Kyma對SAP的意義

    摘要:該標準主要分為運行時標準和容器鏡像標準。事件注冊好之后,使用微服務架構實現事件的監聽者消費者。 大家好,今天非常高興能給大家做一個關于Kyma的技術分享。這個session的audience主要是針對使用咱們成都研究院使用Java和nodejs等技術棧做微服務開發的同事們。對于在ABAP netweaver上做SAP傳統開發的同事們來說,這個session可以讓大家開闊一下眼界。 這是...

    jk_v1 評論0 收藏0
  • 容器,Docker, Kubernetes和Kyma,以及Kyma對SAP的意義

    摘要:該標準主要分為運行時標準和容器鏡像標準。事件注冊好之后,使用微服務架構實現事件的監聽者消費者。 大家好,今天非常高興能給大家做一個關于Kyma的技術分享。這個session的audience主要是針對使用咱們成都研究院使用Java和nodejs等技術棧做微服務開發的同事們。對于在ABAP netweaver上做SAP傳統開發的同事們來說,這個session可以讓大家開闊一下眼界。 這是...

    wangym 評論0 收藏0
  • 基于SAP Kyma的訂單編排增強介紹

    摘要:當然,不同的產品,對訂單增強的實現方式也各不相同。在世界里,想對訂單處理流程做增強,同之前介紹的相比,相對來說受的限制要多一些。首單檢查返回的分數是,根據當前配置文件這個結果被認定為首單。 盡管有一萬個舍不得,2018年還是無可挽回地離我們遠去了。 唯有SAP成都研究院的同事和我去年在網絡上留下的這些痕跡,能證明2018年我們曾經很認真地去度過每一天: SAP成都研究院2018年總共...

    CoorChice 評論0 收藏0

發表評論

0條評論

princekin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<