Как передать фильтры с помощью вызова API Gibbon Export для Mailchimp

Я работаю над извлечением активности подписчиков из Mailchimp, используя Gibbon и метод campaignSubscriberActivity API экспорта. Я использую Ruby 2.1.2 и Gibbon 1.1.3.

Я настраиваю Гиббон ​​:: Экспорт

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

Затем создайте метод, который перебирает набор идентификаторов кампании Mailchimp и извлекает активность для каждого из них.

На этот код ссылается следующая ошибка.

  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'

Поддержка API Mailchimp предполагает, что параметр: Since не отформатирован правильно, и мне нужно кодировать пробел в дате с помощью%20. Однако, когда я добавляю% 20, поэтому параметр: Since имеет значение "2014-10-17%2000:00:00", и я все равно получаю ту же ошибку.

Есть ли какие-либо изменения форматирования, которые мне нужно сделать? Кроме того, как я могу получить полный URL-адрес, который отправляется в Mailchimp, чтобы я мог видеть окончательные значения?

1 ответ

Инициализировать драгоценный камень:

m = Mailchimp::API.new(api_key_here)

Сначала вам понадобятся идентификаторы вашей кампании, и если у вас их нет, вы можете запустить:

m.lists.list это даст вам все ваши кампании, и вы можете получить свои идентификаторы соответственно.

Переберите свои кампании и используйте это:

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

Это даст вам необходимые записи на основе даты совпадения в YYYY-MM-DD,

Другие вопросы по тегам