如何通过 Gibbon Export API 调用为 Mailchimp 传递过滤器

Posted

技术标签:

【中文标题】如何通过 Gibbon Export API 调用为 Mailchimp 传递过滤器【英文标题】:How to pass filters in with Gibbon Export API call for Mailchimp 【发布时间】:2014-12-16 23:16:37 【问题描述】:

我正在使用 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,以便查看最终值?

【问题讨论】:

您好 - 我可以看到没有 since 字段的活动响应吗?我需要看看 mailchimp 是如何编码他们的时间的。 这是返回的单个活动。 \"action\":\"open\",\"timestamp\":\"2014-07-29 16:51:26\",\"url\":null,\"ip\":\" 0.0.0.0\" 有可能不使用 Gibbon 吗?他们的源代码包括method_missing,坦率地说,这对于外部 API 来说并不理想。我已经使用 mailchimp 的官方 ruby​​ 包装器接听了您的电话,如果您愿意,我很乐意回答。 @Anthony 我不需要使用 Gibbon。我已将它用于我使用的其余 mailchimp 集成。我很高兴尝试您的解决方案。让它发挥作用更重要。 @Anthony 你有解决方案吗?感谢您的帮助。 【参考方案1】:

初始化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 中的日期匹配为您提供所需的记录。

【讨论】:

我不确定这是否能回答问题,@analyticsPierce 将 gibbon 用于 Mailchimp api,而不是 Mailchimp ruby​​ api gem。 查看初始帖子@PeteyT下方的cmets。 @Anthony 所以“活动”方法为我提供了该活动的总数。与 Export API 中的campaignSubscriberActivity 不同,后者提供每个订阅者的点击详细信息。此外,这给了我那天的总数,而不是那天以来的所有结果。在接受的时间用完之前,我只有时间做一个快速的概述。我希望你能跟进更多细节。 @analyticsPierce 你看过#member_activity 吗? @Anthony #member_activity 用于检索单个成员的活动。它与为您提供单个活动的所有活动的活动订阅者活动不同。

以上是关于如何通过 Gibbon Export API 调用为 Mailchimp 传递过滤器的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Gibbon Gem 可以访问 API 但不能 listSubscribe()?

Gibbon/Mailchimp API 请求在兴趣分组内创建兴趣

为啥长臂猿会抛出“未初始化的常量 Gibbon::API (NameError)”

使用 MailChimp 3.0 和 Gibbon 2.x 检索 member_id

如何使用 Gibbon (rails wrapper) 直接访问 Mailchimp 上的 body 变量

使用 Gibbon 创建标签时出错(Ruby MailChimp 客户端)