我正在尝试将人员记录从我的数据库同步到mailchimp。我可以更新电子邮件以外的所有字段电子邮件我只能更新一次。再次更新时会抛出错误。我正在使用他们的Java API。这就是我在做什么 -
emailType = "";
replaceInterests = false;
mergeVars.put("EMAIL", rs.getString("email"));
Boolean rc = mcServices.listUpdateMember(apiKey, listId, mailChimpId, mergeVars, emailType, replaceInterests);
重新更新的错误消息是 -
com.nwire.mailchimp.MailChimpServiceException:oldEmail@email.com不是listName的成员 at com.nwire.mailchimp.MailChimpServiceFactory $ ClientFactory $ 1.invoke(MailChimpServiceFactory.java:190) 在$ Proxy0.listUpdateMember(未知来源) 在com.nwire.mailchimp.test.TestMCList1.updateDetails(TestMCList1.java:121) 在com.nwire.mailchimp.test.TestMCList1.sync(TestMCList1.java:92) 在com.nwire.mailchimp.test.TestMCList1.run(TestMCList1.java:52) 在com.nwire.mailchimp.test.TestMCList1.main(TestMCList1.java:35)
请注意,错误消息中的oldEmail@email.com是我已成功更新一次的Mailchimp shich中的原始电子邮件地址,但仍会显示重新更新。
由于
答案 0 :(得分:0)
我真的不确定您使用的是mailChimpId
,但这也是电子邮件。因此,如果电子邮件发生变化,此变量也应该更改。在您的情况下,它将如下所示:
String email = rs.getString("email");
mergeVars.put("EMAIL", email);
Boolean rc = mcServices.listUpdateMember(apiKey, listId, email, mergeVars, emailType, replaceInterests);
我希望这会有所帮助(我编写了这个Java包装器,这在我的服务器上工作正常)。
答案 1 :(得分:0)
连同旧电子邮件地址,即
mergeVars.put(“EMAIL”,电子邮件);
您可以通过以下方式定义新的:
mergeVars.put(“NEW-EMAIL”,新电子邮件);
所以你需要orer中的旧地址和新地址来更新它