簡體   English   中英

獲取列表的所有成員

[英]Get all members of list

我正在嘗試下載列表的所有成員(超過50000),但找不到在MailChimp API中執行此操作的方法。 另一方面,我嘗試使用如下所示的“ GetAllMembersForList”方法,但並不能全部獲取(他僅獲取600)。

誰能告訴我是否還有其他方式可以下載這些成員列表?

    public List<string> GetListMembers(string membersList)
    {
        ListResult lists = mc.GetLists();
        List<string> li = new List<string>();
        foreach(var list in lists.Data)
        {
            if (list.Name == membersList)
            {
                MembersResult res;
                for (int i = 0; i <= list.Stats.MemberCount; i = i + 100)
                {
                    res = new MembersResult();
                    res = mc.GetAllMembersForList(list.Id, "subscribed", i, 100);

                    foreach (var member in res.Data)
                        li.Add(member.Email);
                }
                break;
            }
        }
        return li;
    }

我認為是因為api節流/限制。 但是您可以向支持人員尋求幫助。 https://apidocs.mailchimp.com/help/

我終於找到了解決方案。 我在這里找到https://apidocs.mailchimp.com/export/1.0/list.func.php,並且實現了以下類似內容。 我完全確定有人可以改善這一點,但這是我當時需要的。

如果有人要實現,請參見以下代碼:

     public List<string> GetListMembers(string membersList, string status, string since = "")
    {
        List<string> li = new List<string>();
        //to see what does <dc> means? follow this link https://apidocs.mailchimp.com/api/rtfm/
        string linkPage = @"http://<dc>.api.mailchimp.com/export/1.0/list/?apikey={0}&id={1}&status={2}{3}";
        ListInfo list = mc.GetLists().Data.Where(x => x.Name == membersList).FirstOrDefault();
        linkPage = string.Format(linkPage, conectionMailChimp, list.Id, status, !string.IsNullOrEmpty(since) ? "&since=" + since : string.Empty);

        WebClient wc = new WebClient();
        string text = wc.DownloadString(linkPage);
        text = text.Replace("\"", "");
        string[] res = text.Split(new[] { "]\n[" }, StringSplitOptions.None);

        for (int i = 1; i < res.Length; i++)
            li.Add(res[i].Split(new[] { "," }, StringSplitOptions.None)[0].ToString());

        return li;
    }

要一次調用所有成員(實際上很少需要),可以使用Export API 否則,您最好的選擇是使用分頁功能並一次下載600。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM