千家信息网

怎么使用Java代码在SAP Marketing Cloud上创建Contact数据

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容主要讲解"怎么使用Java代码在SAP Marketing Cloud上创建Contact数据",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使
千家信息网最后更新 2025年01月17日怎么使用Java代码在SAP Marketing Cloud上创建Contact数据

本篇内容主要讲解"怎么使用Java代码在SAP Marketing Cloud上创建Contact数据",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Java代码在SAP Marketing Cloud上创建Contact数据"吧!

源代码:

package partner1;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;    public SimpleContactCreator(){        enableHeaderWireAndContextLogging();    }    private void enableHeaderWireAndContextLogging(){        System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");        System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");        System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header", "debug");        System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "debug");        System.setProperty("org.apache.commons.logging.simplelog.defaultlog", "debug");    }    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);    }}package partner1;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class ConfigUtil {    Properties prop;     public ConfigUtil(){        InputStream input = null;        prop = new Properties();        String propFileName = "config.properties";        input = getClass().getClassLoader().getResourceAsStream(propFileName);        if (input != null) {                try {                    prop.load(input);                } catch (IOException e) {                    e.printStackTrace();                }        }    }    public String getConfig(String name){        return prop.getProperty(name);    }    public static void main(String[] argv){        ConfigUtil tool = new ConfigUtil();        System.out.println("User: " + tool.getConfig("user"));    }}

config.properties文件放在resources文件夹下:

user=mktpassword=MYtokenurl=https://jerry.hybris.com/sap/opu/odata/sap/CUAN_COMMON_SRV/?sap-client=100# not batchcontactcreateurl=https://jerry.hybris.com/sap/opu/odata/sap/CUAN_CONTACT_SRV/InteractionContacts?sap-client=100

到此,相信大家对"怎么使用Java代码在SAP Marketing Cloud上创建Contact数据"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0