首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GIBBON::必须在进行调用之前设置api_key

GIBBON::必须在进行调用之前设置api_key
EN

Stack Overflow用户
提问于 2016-07-05 01:43:04
回答 4查看 984关注 0票数 2

我使用一个教程来设置我的应用程序与mailchimp,以便它发送一个新的订户到一个mailchimp列表。如果你通过流程,一切都很顺利。但是当我运行Rspec时,我的测试套件中有一半是红色的,错误是Gibbon::GibbonError:You must set an api_key prior to making a call。我试着把api键设置在上面写的地方,但是它不起作用?为了清晰起见,我会发布一些代码。

Gibbon.rb:

代码语言:javascript
运行
复制
Gibbon::API.api_key = ENV["MAILCHIMP_API_KEY"]
Gibbon::API.timeout = 15
Gibbon::API.throws_exceptions = true

工作

代码语言:javascript
运行
复制
     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

型号:

代码语言:javascript
运行
复制
 def subscribe_user_to_mailing_list
   SubscribeUserToMailingListJob.perform_later(self)
 end

错误

代码语言:javascript
运行
复制
 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

我在这件事上迷路了。任何帮助都会很好!谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-18 09:39:14

如何开始生成一个MailChimp API-键呢?如果你有一个MailChimp帐户,你可以很容易地在额外的菜单中获得一个。

将"MAILCHIMP_API_KEY“替换为行中的键: Gibbon::API.api_key = ENV"MAILCHIMP_API_KEY”

票数 1
EN

Stack Overflow用户

发布于 2018-03-12 10:17:44

OP,我假设在您的测试中您有一个MAILCHIMP_API_KEY env集,但是Gibbon仍然给您错误,就好像您根本没有一个错误一样?

问题是,Gibbon期望任何API键字符串都按照Mailchimp的API键进行格式化。因此,如果在您的测试中使用字符串api_key_123,您可以使用Gibbon::API.api_key = "api_key_123"来设置这个问题,但是在尝试使用它的时候,Gibbon会表现出它不存在的样子。然而,如果您使用邮件格式的键,如8472f063cf868ab9a49ccbb118c1d5f1-us15,Gibbon将承认它的存在。

票数 4
EN

Stack Overflow用户

发布于 2020-06-02 16:41:50

我认为你应该在你的模型中要求这样的创业板

代码语言:javascript
运行
复制
class SubscribeUserToMailingListJob < ActiveJob::Base
  queue_as :default

  require 'dotenv'
  Dotenv.load


  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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38194081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档