如何在mailchimp api v3中安排活动?

时间:2016-01-25 17:06:50

标签: mailchimp

我正在尝试使用MailChimp API的v3安排广告系列,但我在API文档上看不到任何方法。

http://developer.mailchimp.com/documentation/mailchimp/reference/overview/

有人知道如何在v3上进行调度吗?

2 个答案:

答案 0 :(得分:5)

要将邮件发送到列表,首先需要创建列表和广告系列。

如果您已经创建了这些,可以将带有HTTP请求的预定邮件发送到以下地址。

https://SERVER.api.mailchimp.com/3.0/campaigns/CAMPAIGNID/actions/schedule

服务器:MailChimp为您指定的服务器,您可以通过登录了解该信息。您的信息中心网址将类似于https://us6.admin.mailchimp.com/

在上述情况下, SERVER us6

这些是来自MailChimp v3文档的请求参数。

申请正文参数

<强> schedule_time

  • 类型:Schedule_time
  • 标题:安排时间
  • 只读:false

UTC的日期和时间,用于安排投放广告系列。

<强>时间扭曲

  • 类型:布尔值
  • 标题:Timewarp
  • 只读:false

选择广告系列在发送时是否应使用Timewarp。使用Timewarp计划的广告系列会根据收件人的时区进行本地化。例如,schedule_time为13:00的Timewarp广告系列将在当地时间下午1:00发送给每位收件人。使用批量投放的广告系列无法设置为true。

batch_delivery

  • 类型:对象
  • 标题:批量交付
  • 只读:false

选择广告系列是否应使用批量投放。对于使用Timewarp的广告系列,无法设置为true。

答案 1 :(得分:0)

在这一方上有点晚了,完整的链接是(http://developer.mailchimp.com/documentation/mailchimp/reference/campaigns/#action-post_campaigns_campaign_id_actions_schedule),因为我找不到完整的代码,这里有一个简单的样本使用(https://github.com/brandonseydel/MailChimp.Net):< / p>

public bool CampaignCreate(string campaignName, string subject, string emailText,
        string emailSender, string emailSenderName, DateTime sendTime,
        int templateID, string listID, ref string campaignID)
    {
        MailChimpManager mgr = new MailChimpManager(_apiKey);
        try
        {
            if (String.IsNullOrWhiteSpace(campaignID))
                CampaignExists(campaignName, out campaignID);

            // convert to utc and round up to nearest 15 mins
            if (sendTime.Kind != DateTimeKind.Utc)
                sendTime = sendTime.ToUniversalTime();

            sendTime = sendTime.RoundUp(TimeSpan.FromMinutes(15));

            Models.Campaign newCampaign = new Models.Campaign();
            newCampaign.Id = campaignID;
            newCampaign.Type = CampaignType.Regular;
            newCampaign.Settings = new Models.Setting();
            newCampaign.Settings.Title = campaignName;
            newCampaign.Settings.SubjectLine = subject;
            newCampaign.Recipients = new Models.Recipient();
            newCampaign.Recipients.ListId = listID;
            newCampaign.Settings.FromName = emailSenderName;
            newCampaign.Settings.ReplyTo = emailSender;
            newCampaign.Settings.TemplateId = templateID;

            newCampaign = mgr.Campaigns.AddOrUpdateAsync(newCampaign).Result;

            campaignID = newCampaign.Id;
            ContentRequest content = new ContentRequest();
            content.Html = emailText;

            mgr.Content.AddOrUpdateAsync(campaignID, content);

            mgr.Campaigns.ScheduleAsync(newCampaign.Id, new CampaignScheduleRequest()
            { ScheduleTime = sendTime.ToString("o") } );

            mgr.Campaigns.SendAsync(campaignID);

            return (!String.IsNullOrWhiteSpace(campaignID));
        }
        finally
        {
            mgr = null;
        }
    }