Обновление адреса электронной почты в Mailchimp с помощью Mailchimp API
Я пытаюсь синхронизировать запись человека из моей БД в 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 по адресу com.nwire.mailchimp.MailChimpServiceFactory$ClientFactory$1.invoke(MailChimpServiceFactory.java:190) в $Proxy0.listUpdate.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, который я успешно обновил один раз, но все еще отображается при повторных обновлениях.
Спасибо
2 ответа
Вместе со старым адресом электронной почты, т.е.
mergeVars.put("EMAIL", электронная почта);
Вы определяете новый следующим образом:
mergeVars.put ("NEW-EMAIL", new-email);
Таким образом, вам нужно как старые, так и новые адреса в Orer, чтобы обновить его
Я действительно не уверен, что вы используете в качестве mailChimpId
, но это тоже электронная почта. Таким образом, если электронная почта изменяется, эта переменная также должна измениться. В вашем случае это будет выглядеть так:
String email = rs.getString("email");
mergeVars.put("EMAIL", email);
Boolean rc = mcServices.listUpdateMember(apiKey, listId, email, mergeVars, emailType, replaceInterests);
Я надеюсь, что это поможет (я написал эту обертку Java, и это прекрасно работает на моем сервере).