使用 MailChimp API V3 通过电子邮件搜索成员

Posted

技术标签:

【中文标题】使用 MailChimp API V3 通过电子邮件搜索成员【英文标题】:Search member by email using MailChimp API V3 【发布时间】:2016-09-23 13:34:37 【问题描述】:

在 mailchimp api V2 中。我能够使用一种方法检索时事通讯订阅列表:lists/member-info。 在 V3 中。我必须使用方法:

    /lists/listid/members,检索所有成员,并找到emailid 然后使用方法:/lists/listid/members/emailid检索订阅列表interest

在我们的例子中,我们现在有 20K+ 个电子邮件地址,所以第 1 步会有点慢(20k/1k=20 次)。有什么方法可以快速获取订阅列表吗?

【问题讨论】:

我很困惑。 . .你从/lists/listid/members/emailid 得到了什么你没有从/lists/listid/members/ 得到的东西? 你说得对,.../members 应该这样做,但一次只能列出 1k,列出我更喜欢使用 export/list 的所有成员,这会将所有用户放在一个大转储中。这时候我比较关心一封邮件的订阅,我认为:md5 hash email;那么 .../members/md5hashid 应该是我想做的最快的方法。谢谢。 有道理。请记住,exports API 将在 2016 年底停用,因此到那时您需要想出一种新方法来做到这一点! 【参考方案1】:

好的,只需重新阅读 api 指南的第一页,id 是 md5 哈希,所以我可以生成 id 并进行查询,这将删除第 1 步。对于参考,我发现以下 md5 哈希很有用: How can I generate an MD5 hash?

【讨论】:

【参考方案2】:

只是想我会给出将电子邮件字符串转换为 MailChimp 的 MD5 哈希的完整代码解决方案。请务必注意,MD5 哈希值基于电子邮件字符串的小写版本。

public static String generateEndPoint_findMemberByEmail(String listId, String email) throws Exception 
    byte[] bytesOfMessage = email.toLowerCase().getBytes(StandardCharsets.UTF_8);
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] md5 = md.digest(bytesOfMessage);
    String emailHash = Hex.encodeHexString(md5);
    return "/lists/" + listId + "/members/" + emailHash;

【讨论】:

以上是关于使用 MailChimp API V3 通过电子邮件搜索成员的主要内容,如果未能解决你的问题,请参考以下文章

通过 MailChimp API v3.0 向列表发送电子邮件?

Mailchimp API v3.0 通过 NodeJS http 添加电子邮件到列表

仅限于通过 R 和 cURL 使用 Mailchimp API v3 提取详细信息(如电子邮件活动)?

MailChimp API v3 - 无法修补/更新?

Mailchimp API v3.0 添加待处理成员而无需确认电子邮件

使用 MailChimp API v3.0 检查电子邮件地址是不是已在列表中,而无需订阅电子邮件地址