【问题标题】:Mailchimp API post members batch operationMailchimp API 发布成员批量操作
【发布时间】:2020-09-29 14:58:31
【问题描述】:

我发现当我向 Mailchimp API 提交批处理操作以将成员添加到 Mailchimp 受众时,操作失败并出现此错误...

[{\"field\":\"email_address\",\"message\":\"This value should not be blank.\"}]

这很奇怪,因为我的批处理操作指定了 email_addresses。

        ArrayList<MailchimpOperation> operations = new ArrayList<MailchimpOperation>();
    for (Contact contact : contacts) {
        MailchimpOperation operation = new MailchimpOperation();
        operation.method = "POST";
        operation.path = "lists/" + audienceid + "/members";
        NewMember newMember = new NewMember();
        newMember.email_address = contact.email;
        MergeFields mf = new MergeFields();
        mf.FNAME = contact.firstname;
        mf.LNAME = contact.lastname;
        newMember.merge_fields = mf;
        newMember.status = "subscribed";
        operation.body = newMember.toString();
        operation.operation_id = "add_batch_" + batchNumber + "_to_mailchimp_audience_" + audienceid;
        operations.add(operation);
    }

我在一些堆栈溢出帖子中看到 operation.body 应该是 JSON 对象。这个我也试过了...

ArrayList<MailchimpOperation> operations = new ArrayList<MailchimpOperation>();
    for (Contact contact : contacts) {
        MailchimpOperation operation = new MailchimpOperation();
        operation.method = "POST";
        operation.path = "lists/" + audienceid + "/members";
        NewMember newMember = new NewMember();
        newMember.email_address = contact.email;
        MergeFields mf = new MergeFields();
        mf.FNAME = contact.firstname;
        mf.LNAME = contact.lastname;
        newMember.merge_fields = mf;
        newMember.status = "subscribed";
        operation.body = newMember;
        operation.operation_id = "add_batch_" + batchNumber + "_to_mailchimp_audience_" + audienceid;
        operations.add(operation);
    }

这会产生错误...

Mailchimp error: The resource submitted could not be validated. For field-specific details, see the 'errors' array.,mailchimp error 1 Schema describes string, object found instead,mailchimp error 2 Schema describes string, object found instead

如果我像这样显式设置 operation.body,则操作成功...

operation.body = "{\"merge_fields\":{\"FNAME\":\"" + contact.firstname + "\",\"LNAME\":\""
                + contact.lastname + "\"}, \"email_address\":\"" + contact.email + "\", \"status\":\"subscribed\"}";

那么为什么我设置operation.body = newMember.toString() 的第一种方法会失败?

【问题讨论】:

  • 不确定 NewMember 对象来自哪里,是否有字符串表示或 json 输出方法?

标签: java jax-rs batch-processing mailchimp-api-v3.0


【解决方案1】:

解决方案是不使用 .toString(),而是使用这个...

    operation.body = new ObjectMapper().writeValueAsString(newMember);

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 2016-04-15
    • 2015-11-24
    • 2015-03-01
    • 2020-11-24
    • 2020-09-27
    • 2018-10-10
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多