2010-11-10 9 views
0

J'essaie de synchroniser un enregistrement de personne de ma base de données vers mailchimp. Je peux mettre à jour tous les champs sauf le courrier électronique. Email je ne peux mettre à jour qu'une seule fois. Lors de la mise à jour à nouveau, il génère une erreur. J'utilise leur API Java. C'est ce que je fais -Mise à jour de l'adresse e-mail dans Mailchimp à l'aide de l'API Mailchimp

emailType = ""; 
replaceInterests = false; 

mergeVars.put("EMAIL", rs.getString("email")); 

Boolean rc = mcServices.listUpdateMember(apiKey, listId, mailChimpId, mergeVars, emailType, replaceInterests); 

Le message d'erreur sur est remise à jour -

com.nwire.mailchimp.MailChimpServiceException: [email protected] est pas membre de listName à com.nwire. mailchimp.MailChimpServiceFactory $ ClientFactory $ 1.invoke (MailChimpServiceFactory.java:190) à $ Proxy0.listUpdateMember (Source inconnue) à 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)

S'il vous plaît noter, [email protected] dans le message d'erreur est l'adresse e-mail d'origine dans Mailchimp shich j'ai avec succès mis à jour une fois, mais apparaît toujours sur les mises à jour.

Merci

Répondre

0

Je ne suis pas sûr de ce que vous utilisez comme mailChimpId, mais c'est l'e-mail ainsi. Donc, si l'email change, cette variable devrait également changer. Dans votre cas, il ressemblera à ceci:

String email = rs.getString("email"); 
mergeVars.put("EMAIL", email); 
Boolean rc = mcServices.listUpdateMember(apiKey, listId, email, mergeVars, emailType, replaceInterests); 

J'espère que cette aide (je l'ai écrit ce wrapper Java et cela fonctionne très bien sur mon serveur).

+0

Merci .. Mais je ne pense pas que cela fonctionne. Car comment Mailchimp sait-il quel e-mail de contact doit être modifié (nous ne faisons que transmettre l'e-mail mis à jour, pas l'e-mail stocké avec mailchimp). J'utilise mailchimpId - id unique attribué par mailchimp à chaque contact. – gaurav

+0

Je suggère d'utiliser le groupe de support API MailChimp. http://groups.google.com/group/mailchimp-api-discuss. Vous pouvez également envoyer un e-mail à leur support. – zvikico

0

Avec l'ancienne adresse e-mail à savoir

mergeVars.put ("EMAIL", e-mail);

vous définissez la nouvelle de la manière suivante:

mergeVars.put ("NEW-EMAIL", nouveau-email);

Vous avez donc besoin à la fois l'ancien et les nouvelles adresses dans orer mettre à jour

+0

Bien que dans mon cas j'utilise PHP, vous ne devriez pas utiliser à la fois EMAIL et NEW-EMAIL en même temps. L '"ancien email" est par la clé "email_address", et ensuite vous pouvez utiliser merge_vars [' EMAIL '] ou merge_vars [' NEW-EMAIL '] pour mettre à jour l'adresse de l'abonné. Ma compréhension de votre réponse est que vous devez avoir les deux, [ce qui est incorrect] (https://twitter.com/MailChimp_API/status/351674145609748480). – alexleonard