Добавление нового подписчика в аудиторию Mailchimp с использованием Java и клиента Jersey - PullRequest
0 голосов
/ 12 июня 2019

Мне нужно добавить подписчика в аудиторию mailchimp. Я использую Java и клиент Джерси. У меня нет проблем с получением аудитории с помощью API Mailchimp 3.0. Что я должен изменить в своем почтовом запросе, чтобы успешно добавить нового подписчика? Когда мой код не работает, нет ответа. Затем, когда я проверяю учетную запись Mailchimp и вижу, что новый подписчик не был добавлен.

class MailchimpClient {

    Client client;
    String mailchimpUrl;

    public MailchimpClient() {
        String mailchimpApikey = getAPIKey();
        String datacenter = mailchimpApikey.substring(mailchimpApikey.lastIndexOf('-') + 1);
        mailchimpUrl = "https://" + datacenter + ".api.mailchimp.com/3.0/";

        JacksonJsonProvider jjp = new JacksonJsonProvider();
        jjp.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        ClientConfig conf = new ClientConfig();
        conf.property(ClientProperties.CONNECT_TIMEOUT, TIMEOUT);
        conf.property(ClientProperties.READ_TIMEOUT, TIMEOUT);
        conf.register(jjp);

        HttpAuthenticationFeature httpAuth = HttpAuthenticationFeature.basic("username", mailchimpApikey);

        client = ClientBuilder.newClient(conf).register(httpAuth);
    }

    public <T> T get(String path, Class<T> responseType) {
        T t = client.target(mailchimpUrl).path(path).request(MediaType.APPLICATION_JSON).get(responseType);
        client.close();
        return t;
    }

    public <T> T post(String path, Object payload, Class<T> responseType) {
        Entity<Object> entity = Entity.entity(payload, MediaType.APPLICATION_JSON);
        T t = client.target(mailchimpUrl).path(path).request(MediaType.APPLICATION_JSON).post(entity, responseType);
        client.close();
        return t;
    }

    String audienceid = xxxxxxx;
    MailchimpClient mcc = new MailchimpClient();
    MembersResponse mr = mcc.get("lists/" + audienceid + "/members", MembersResponse.class);
    addToMailchimpAudience(String audienceid);

private Message addToMailchimpAudience(String audienceid) {
    HashMap<String, String> newMember = new HashMap<String, String>();
    newMember.put("email_address", "bob@gmail.com");
    newMember.put("status", "subscribed");
    MailchimpClient mcc = new MailchimpClient();
    MembersResponse mr = mcc.post("lists/" + audienceid + "/members", newMember, MembersResponse.class);
    logger.info("response: " + mr);
    return Message.success("Successfully added new member to mailchimp audience");

}


1 Ответ

0 голосов
/ 13 июня 2019

Запросом на добавление новых участников должен быть JSON. Добавление контакта в список / аудиторию.

. Чтобы добавить контакт в список / аудиторию, отправьте запрос POST конечной точке списка участников: /3.0/списки / 9e67587f52 / Участники /.Тело запроса должно быть объектом JSON, который содержит информацию, которую вы хотите добавить, со статусом и любыми другими обязательными полями списка.

{"email_address": "urist.mcvankab@freddiesjokes.com", "status": "subscription", "merge_fields": {"FNAME": "Urist", "LNAME": "McVankab"}}

Я заметил, что вы отправляете значения в HasMap, пытаетесь конвертировать в JSON и видитеесли это работает

Ссылка для вашей справки: https://developer.mailchimp.com/documentation/mailchimp/guides/manage-subscribers-with-the-mailchimp-api/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...