GIBBON ::必须在拨打电话前设置api_key - rails

问题描述 投票:0回答:2

我使用了一个教程来设置我的应用程序与mailchimp,以便它将新订阅者发送到mailchimp列表。如果你顺利完成,一切都运转正常。但是当我运行Rspec我的测试套件的一半是红色的,这个错误Gibbon::GibbonError:You must set an api_key prior to making a call。我试着设置我的api键,但它没有用?为了清楚起见,我会发布一些代码。

Gibbon.rb:

Gibbon::API.api_key = ENV["MAILCHIMP_API_KEY"]
Gibbon::API.timeout = 15
Gibbon::API.throws_exceptions = true

工作

     class SubscribeUserToMailingListJob < ActiveJob::Base
  queue_as :default

  def perform(subscriber)
    gb = Gibbon::API.new(Figaro.env.mailchimp_api_key)
    gb.lists.subscribe({:id => ENV["MAILCHIMP_LIST_ID"], :email => {:email => subscriber.email}, :merge_vars => {:FNAME => subscriber.first_name, :LNAME => subscriber.last_name}, :double_optin => false})
  end
end

模型:

 def subscribe_user_to_mailing_list
   SubscribeUserToMailingListJob.perform_later(self)
 end

错误

 Create a subscriber Subscriber can sign in
  Failure/Error: gb.lists.subscribe({:id => ENV["MAILCHIMP_LIST_ID"],   :email => {:email => subscriber.email}, :merge_vars => {:FNAME =>   subscriber.first_name, :LNAME => subscriber.last_name}, :double_optin =>   false})

Gibbon::GibbonError:
You must set an api_key prior to making a call

我迷失在这一个。任何帮助都会很棒!谢谢。

ruby-on-rails mailchimp mailchimp-api-v3.0 gibbon
2个回答
1
投票

如何为一个开始生成MailChimp API密钥呢?如果您有一个MailChimp帐户,您可以在附加菜单中轻松获得一个。

将“MAILCHIMP_API_KEY”替换为您的密钥:Gibbon :: API.api_key = ENV [“MAILCHIMP_API_KEY”]


1
投票

OP,我假设在你的测试中你有一个MAILCHIMP_API_KEY env var set,然而Gibbon仍然给你错误,好像你根本没有一个?

问题是Gibbon希望根据Mailchimp的API密钥格式化任何API密钥字符串。因此,如果在你的测试中你使用的是字符串api_key_123,你可以使用Gibbon::API.api_key = "api_key_123"设置它,但是在你试图使用它的时候,Gibbon会表现得像它不存在。然而,如果你使用像8472f063cf868ab9a49ccbb118c1d5f1-us15这样的Mailchimp格式的密钥,Gibbon将承认它的存在。

© www.soinside.com 2019 - 2024. All rights reserved.