问题标签 [gibbon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
933 浏览

ruby-on-rails - Heroku 的 API 尝试导致 DNS 错误 'SocketError: Hostname not known'

我正在 Heroku 上运行一个应用程序,它尝试使用 Gibbon gem 连接到 MailChimp(将电子邮件地址添加到邮件列表中)。API 连接失败。Heroku 错误日志显示:

我看到了一篇博客文章(感谢 Mike Subelsky),它建议在config/initializer/requires.rbrequire 'resolv-replace.rb'文件中添加到应用程序,所以我尝试了。现在 Heroku 错误日志显示:

我不确定奇怪的主机名来自哪里。主机“api.mailchimp.com”存在,但“8c7d675bb0b8.api.mailchimp.com”不存在。

该应用程序在我的本地计算机上进行开发。Heroku 上使用相同代码的其他应用程序也可以正常工作。发生了什么事,我该如何解决?

0 投票
2 回答
282 浏览

ruby-on-rails - Heroku 需要不同的代码来设置环境变量,但为什么呢?

我第一次对我已经解决的答案有疑问,这更多是关于为什么我的小修复首先解决了它。

我正在关注 Daniel Kehoe 的 Learn Rails 书籍教程,创建了一个应用程序,该应用程序应该为人们订阅 MailChimp 列表。我正在使用 Gibbon gem,在本书中,这是模型中用于设置变量的(部分)代码:

我的相关变量的 secrets.yml 文件如下所示:

而且,因为我在 Windows 上,所以我在 application.yml 中设置了它们的实际值:[编辑:正如人们所指出的,这来自 Figaro gem,可能是本教程的一部分,也可能不是本教程的一部分]

我应该注意,这在本地工作得很好。我可以运行我的服务器并订阅。但是,将它推送到 Heroku 并通过heroku config:set MAILCHIMP_API_KEY=mysecretkey同样的方法设置 ENV 变量MAILCHIMP_LIST_ID,它不起作用。更具体地说,它返回错误Invalid Mailchimp List ID:

因此,尽管设置它并检查它是否实际设置,但它对于 List ID根本没有任何价值。

我通过在 Config Vars 上搜索 Heroku 自己的帮助文本解决了这个问题,它建议如下:“设置您的代码以在运行时读取 vars。例如,在 Ruby 中,您使用ENV['KEY']模式访问环境变量”

我在模型中更改了我的代码,所以现在不是使用Rails.application.secrets.mailchimp_list_id它:

而且,您知道吗,它在 Heroku(和本地)中有效!为什么呢?我的意思是,它确实理解 API 密钥的相同类型的代码,但不理解列表 ID,这对我来说似乎很奇怪。另外,为什么有问题的书没有反映这一点?作者似乎愿意定期更新它,我看到他以几乎宗教般的奉献精神回答有关它的问题。我是唯一遇到这个问题的人吗?

编辑:在下面解决。我现在觉得有点傻,和往常一样,事情有一个非常简单的解决方案。我会注意到这本书实际上确实在 secrets.yml 文件中将密钥复制到了生产环境中,我只是错过了那部分,可能是因为我必须找到一个替代解决方案来解决整个环境变量问题并使用 Figaro gem。如果我对这本书有任何批评,那就是它不适合我们这些可怜的 Windows 用户。:)

0 投票
1 回答
122 浏览

ruby-on-rails - 将邮件黑猩猩 API 与长臂猿一起使用时,“campaing_id”不是符号错误

上下文: 我有一个 Rails 应用程序。我有一个表格,用户可以在其中输入他们的电子邮件列表作为新闻信函的一部分。我正在使用邮件黑猩猩和长臂猿宝石作为导轨。我可以使用 gibbon api 成功地将新订阅者添加到列表中,我可以成功创建一个新活动,如下面的代码所示。在我的 gem 文件中: gem 'gibbon', git: 'git://github.com/amro/gibbon.git' 为了测试功能,我在 CampaignsController 中调用 create 操作(代码如下)。活动已成功创建,我从 api 获取结果,但在下一步中,应用程序崩溃并显示以下错误消息:

问题: CampaignsController#create ["xyz"] 中的 TypeError 不是一个符号,其中 xyz 是新创建的活动的活动 ID。

代码: 在 CampaignsController 中

0 投票
1 回答
191 浏览

ruby-on-rails - 在rails中使用长臂猿订阅后添加警报?

在有人使用 Gibbon gem 订阅 Rails 4 中的电子邮件列表后,如何创建警报?

这是控制器动作:

我尝试在 gb.lists.subscribe 调用之前或之后添加以下内容,但没有成功

0 投票
2 回答
661 浏览

ruby-on-rails - Gibbon API 不报错,但不订阅

这是一个奇怪的问题。我已经使用 MailChimp、Gibbon、RoR 应用程序运行了几年,本周我去使用我的应用程序的一部分,并意识到集成不再有效。我没有收到任何错误,一些基本测试表明代码的异常部分从未被调用。

这是我正在使用的代码:

一些代码为了可读性而编辑,但假设变量已定义并且没有引发错误。

我正在寻找的是一些调试帮助。我似乎无法找到一种方法来调试集成以了解是否存在静默失败。除了尝试捕获引发的异常之外,有没有人有任何调试这个的提示?

0 投票
2 回答
1361 浏览

ruby-on-rails - 如果某人尚不存在,请订阅他们到 Mailchimp 列表

我最近添加了使用 Gibbon gem 从我的 rails 应用程序订阅人们到 mailchimp 列表的功能。

当人们注册时订阅列表是完美的,当他们登录时,它会更新他们在 mailchimp 列表上的信息(例如登录计数和 last_login_date)。

但是,还有其他用户在使用我想添加到 mailchimp 列表中的应用程序,但因为他们已经有一个帐户,他们不会再次注册,因此不会被订阅。

我正在尝试将 if 语句添加到登录页面,如果它们尚不存在,则将它们订阅到列表中,但无法弄清楚语法。

例如,如果我对其进行测试以查找我知道不存在的用户,如下所示:

然后它返回这个:

但我需要的只是一个真假...

我试过了:

但这显然不起作用,因为它说include?哈希的未定义方法......

关于如何将其变为真或假布尔值的任何想法?

0 投票
1 回答
82 浏览

ruby-on-rails - 防止阅读未订阅的用户

根据这篇文章,Mailchimp 会自动阻止重新订阅。

但事实并非如此,如果您gb.lists.subscribe(...)Gibbon实例上运行 a,即使用户已取消订阅,它也会重新订阅该用户。

所以我的问题是:这是一个长臂猿错误吗?Mailchimp 错误?这篇博文有错吗?还是我错了?

0 投票
0 回答
231 浏览

ruby-on-rails - 在 Heroku 上为 MailChimp 使用 Gibbon

我正在使用 Gibbon 自动向 Mailchimp 发送新用户的电子邮件。在我的 Heroku 日志中,我收到以下错误消息:

我的 gibbon.rb 有我的 Mailchimp API 密钥:

我的控制器调用此操作:

此外,在我的开发环境中,我收到此错误消息,可能是也可能不是线索:

所有帮助表示赞赏!

0 投票
1 回答
703 浏览

ruby-on-rails - 长臂猿 / Mailchimp 注册表格

为 mailchimp 列表创建简单的注册表单时遇到了一些麻烦。无法弄清楚为什么当他们的电子邮件通过时,它不会传递给 mailchimp.. 想法?我确定我在这里错过了一步。

index.html.erb(表单)

Gibbon.rb(初始化程序)

Welcome.rb (模型)

路由.rb

0 投票
1 回答
777 浏览

ruby-on-rails - 如何使用 Mailchimp API 3.0 和 Gibbon 2.x 订阅新用户

在我的应用程序中,我想在创建用户时自动订阅 MailChimp 列表。我找到的所有文档都集中在 MailChip API 2.0 和 Gibbon 1.x 上。

这是我到目前为止所拥有的:

我创建了一个 .env 文件:

我创建了一个名为 gibbon.rb 的初始化程序:

然后创建了一个作业:

在我的 user.rb 中我检查后有这个

并在私人下添加了这个:

我收到 400 错误gibbon.lists(ENV["MAILCHIMP_LIST_ID"]).members.create(body: {email_address: user.email, status: "subscribed", merge_fields: {FNAME: user.name, LNAME: ""}})

********编辑********

根据这次谈话

我认为发生错误是因为电子邮件地址已存在于列表中。我第一次遇到错误时,电子邮件地址已添加到 MailChimp 列表中,但由于另一个错误,该用户未在我的应用程序中创建。现在,当我尝试使用相同的电子邮件地址创建用户时,会弹出错误 400,因为该电子邮件已经存在。这也可以防止在我的应用程序中创建用户。

请有更多经验的人验证这是否正确?