【问题标题】:Gibbon::GibbonError at /visitors You must set an api_key prior to making a call/visitors 处的 Gibbon::GibbonError 您必须在调用之前设置一个 api_key
【发布时间】:2014-06-22 06:47:40
【问题描述】:

运行 OSX Mavericks、ruby 2.1.1p76(2014-02-24 修订版 45161)[x86_64-darwin13.0]、rvm 1.25.23(主)和 rails-4.1.0(据称)

我正在阅读learning rails 上的 railsapps.org 书籍我已经完成了 mailchimp 电子邮件列表代码的实现,当我在表单上按下提交时,我收到以下错误:

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

我正在处理invalid URI error,它在周末神秘地消失了(自上周五以来我没有碰过 Mac)。现在我遇到了这个新错误。

我的 API 密钥和列表 ID 有效且设置正确。如果我回头查看日志,我会看到另一个错误,即缺少 mailchimp.lists.subscribe 方法。

这是本书中实现的代码:

class Visitor < ActiveRecord::Base
  has_no_table
  column :email, :string
  validates_presence_of :email
  validates_format_of :email, :with => /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}\z/i

  def subscribe
  mailchimp = Gibbon::API.new
  result = mailchimp.lists.subscribe({
    :id => Rails.application.secrets.mailchimp_list_id,
    :email => {:email => self.email},
    :double_optin => false,
    :update_existing => true,
    :send_welcome => true
  })
  Rails.logger.info("Subscribed #{self.email} to MailChimp") if result
end

end

当我无法为自己调试时,我讨厌成为菜鸟......感谢回复。

问候,

杰夫

【问题讨论】:

    标签: ruby-on-rails railsapps


    【解决方案1】:

    Gibbon 会自动查找环境变量 MAILCHIMP_API_KEY,Gibbon 会在您创建实例时使用它。如果您尚未设置 Unix 环境变量 MAILCHIMP_API_KEY,则需要显式设置它。硬编码:

     mailchimp = Gibbon::API.new("your_api_key")
    

    或者从 config/secrets.yml 文件中获取:

     mailchimp = Gibbon::API.new(Rails.application.secrets.mailchimp_api_key)
    

    【讨论】:

    • 谢谢丹尼尔,我想因为我的环境变量似乎被破坏了,我必须对 API 密钥进行硬编码。 mailchimp = Gibbon::API.new(Rails.application.secrets.mailchimp_api_key) 帮了我大忙。
    • 我已经更新了本书的下一版本以明确设置 mailchimp_api_key。感谢您提请我注意。
    猜你喜欢
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多