如何使用针对Mailchimp的Gibbon Export API调用传递过滤器

时间:2014-10-21 16:27:59

标签: ruby mailchimp gibbon

我正在使用Gibbon和Export API的campaignSubscriberActivity方法从Mailchimp检索订阅者活动。我使用的是Ruby 2.1.2和Gibbon 1.1.3。

我设置了Gibbon :: Export

@gibbon_export = Gibbon::Export.new(@api_key)

然后有一个方法循环遍历一组Mailchimp广告系列ID并检索每个广告系列的活动。

这是以下错误引用的代码。

  activities = @gibbon_export.campaignSubscriberActivity({
    :apikey => @api_key,
    :id => campaign['campaign_id'], 
    :since =>  "2014-10-17 00:00:00"
  })

这是我得到的错误:

/Users/pierce/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/multi_json-1.10.1/lib/multi_json/adapter.rb:19:in `load': JSON::ParserError (MultiJson::ParseError)
    from /Users/pierce/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/multi_json-1.10.1/lib/multi_json.rb:119:in `load'
    from /Users/pierce/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/gibbon-1.1.3/lib/gibbon/export.rb:26:in `call'
    from /Users/pierce/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/gibbon-1.1.3/lib/gibbon/export.rb:55:in `method_missing'
    from mc_get_campaign_subscriber_activity.rb:63:in `block in retrieve_campaign_subscriber_activity_from_mc'

Mailchimp API支持建议:since参数格式不正确,我需要用%20编码日期中的空格。但是,当我添加%20所以:since参数是“2014-10-17%2000:00:00”我仍然得到相同的错误。

我需要进行任何格式更改吗?另外,如何获取发送给Mailchimp的完整URL,以便查看最终值?

1 个答案:

答案 0 :(得分:2)

初始化gem:

m = Mailchimp::API.new(api_key_here)

首先,您需要自己的广告系列ID,如果没有,则可以运行:

m.lists.list会为您提供所有广告系列,并且您可以相应地获取您的ID。

循环播放您的广告系列并使用:

m.lists.activity('campaign_id').select { |i| i["day"] == "2014-09-30" }

这将根据YYYY-MM-DD中的日期匹配为您提供所需的记录。