问题标签 [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.
ruby-on-rails - 使用 MailChimp 3.0 和 Gibbon 2.x 检索 member_id
在我的应用程序的用户设置中,用户可以通过选中一个框来订阅或取消订阅 MailChimp 列表。我在检索用户 MailChimp member_id 时遇到了一些问题。
我创建了一个 .env 文件:
我创建了一个名为 gibbon.rb 的初始化程序:
我在 user.rb 中使用了这个方法
结尾
并在检查后调用它
我收到此错误:undefined local variable or method `member_id'
。如何获取 member_id?
ruby-on-rails - 在 Rails 4 中检查 MailChimp 列表上的用户订阅状态
我有一个应用程序,允许用户订阅 MailChimp 上的电子邮件列表,使用 Gibbon gem 来包装 MailChimp api。我可以通过 API 访问列表、订阅成员。现在,我希望能够在用户个人资料中准确显示用户订阅了电子邮件列表,并根据他们是订阅还是待定显示适当的内容。
我可以检索与列表中的订阅者相对应的哈希数组,但是当我尝试查找特定用户时,出现此错误并跟踪:
我也不确定,以这种方式访问整个列表是否正确,只是为了验证列表中是否存在一个用户。
有人知道怎么做吗?
更新:
使用评论中皮特的建议,我能够得到这个工作。
这是用于检索 MailChimp 订阅者哈希的命令:
gb.lists(ENV['MAILCHIMP_LIST_ID']).members(Digest::MD5.hexdigest("test9@gmail.com")).retrieve
ruby-on-rails - MailChimp 表单在用户通过电子邮件确认之前不会将用户注册为待处理
我正在尝试将我的应用程序用户列表与 MailChimp 上的订阅者同步。
我们将Gibbon gem与 Rails 4 一起使用。一切正常,我可以根据用户的电子邮件地址查看用户的状态,并确定他们是否已订阅、未决或无。用户可以通过 MailChimp 在线表格的链接或通过选中我们网络应用程序中的选择框进行注册。
问题是,如果用户通过 MailChimp 链接订阅,MailChimp API 不会将它们识别为待处理。结果,我们的应用收到 nil,而不是“待定”,如果他们通过复选框注册会发生这种情况。
由于应用程序收到响应nil
,它向用户表明他们应该选中该框以注册 awk 的时事通讯,因为他们已经注册过一次。
除此之外,如果用户勾选了已经直接注册 MailChimp 的复选框,他们会被拒绝并显示 400 错误,因为 MailChimp 已经拥有该电子邮件地址。
我的目标是当用户在 MailChimp 上订阅、挂起等时,能够准确地反映在应用程序中。
下面的错误和完整跟踪:
.bundle/gems/ruby/2.2.0/gems/gibbon-2.0.0/lib/gibbon/api_request.rb:100:in
handle_error' .bundle/gems/ruby/2.2.0/gems/gibbon-2.0.0/lib/gibbon/api_request.rb:16:in
rescue in post' .bundle/gems/ruby/2.2.0/gems/gibbon-2.0 .0/lib/gibbon/api_request.rb:10:inpost' .bundle/gems/ruby/2.2.0/gems/gibbon-2.0.0/lib/gibbon/request.rb:28:in
create' app/models/user.rb:60:inadd_to_mailchimp' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:430:in
block in make_lambda' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/ lib/active_support/callbacks.rb:237:incall' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:237:in
block in halting' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:504:incall' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:504:in
block in call' 。 bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:504:ineach' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:504:in
call'.bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/ lib/active_support/callbacks.rb:88:inrun_callbacks' .bundle/gems/ruby/2.2.0/gems/activemodel-4.2.3/lib/active_model/validations/callbacks.rb:113:in
run_validations!.bundle/gems/ruby/2.2.0/gems/activemodel-4.2.3/lib/active_model/validations.rb:334:invalid?' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/validations.rb:58:in
有效的?' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/validations.rb:83:inperform_validations' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/validations.rb:37:in
save' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3 /lib/active_record/attribute_methods/dirty.rb:21:insave' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:286:in
block (2 levels) in save'.bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:351 :在block in with_transaction_returning_status' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in
事务中'.bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:220:intransaction' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:348:in
with_transaction_returning_status'.bundle/gems/ruby/2.2.0/gems/activerecord -4.2.3/lib/active_record/transactions.rb:286:inblock in save' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:301:in
rollback_active_record_state!' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:285:insave' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/persistence.rb:252:in
块更新'.bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:351:inblock in with_transaction_returning_status' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
块在事务'.bundle/gems/ruby/2.2.0/gems /activerecord-4.2.3/lib/active_record/connection_adapters/abstract/transaction.rb:184:inwithin_new_transaction' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
transaction' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb :220:intransaction' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:348:in
with_transaction_returning_status'.bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/persistence.rb:250:in update'.bundleupdate' app/controllers/users_controller.rb:20:in
/gems/ruby/2.2.0/gems /actionpack-4.2.3/lib/action_controller/metal/implicit_render.rb:4:insend_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/base.rb:198:in
process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/rendering.rb :10:在process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/callbacks.rb:20:in
阻止在 process_action' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:115:incall' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:115:in
call' .bundle/gems/ruby/2.2.0/gems/activesupport -4.2.3/lib/active_support/callbacks.rb:553:inblock (2 levels) in compile' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:503:in
call' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:503:incall' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:88:in
run_callbacks' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/callbacks.rb:19:inprocess_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/rescue.rb:29:in
process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3 /lib/action_controller/metal/instrumentation.rb:32:inblock in process_action' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:164:in
块中的仪器'.bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/notifications/instrumenter.rb:20:ininstrument' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:164:in
仪器'.bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:30:inprocess_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/params_wrapper.rb:250:in
process_action'.bundle/gems/ruby/2.2.0/gems/searchkick -0.8.7/lib/searchkick/logging.rb:107:inprocess_action' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/railties/controller_runtime.rb:18:in
process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/base.rb:137:inprocess' .bundle/gems/ruby/2.2.0/gems/actionview-4.2.3/lib/action_view/rendering.rb:30:in
process' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal.rb:196:indispatch' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/rack_delegation.rb:13:in
dispatch' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3 /lib/action_controller/metal.rb:237:in call'.bundleblock in action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:76:in
/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:76:indispatch' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:45:in
serve'.bundle /gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/journey/router.rb:43:inblock in serve' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/journey/router.rb:30:in
每个'.bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/journey/router.rb:30:in call'.bundleserve' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:821:in
/gems/ruby/2.2.0/gems/rack -pjax-0.8.0/lib/rack/pjax.rb:12:incall' .bundle/gems/ruby/2.2.0/gems/bullet-4.14.7/lib/bullet/rack.rb:12:in
call' .bundle/gems/ruby/2.2.0/gems/warden-1.2.3/lib/warden/manager.rb:35:inblock in call' .bundle/gems/ruby/2.2.0/gems/warden-1.2.3/lib/warden/manager.rb:34:in
抓住'.bundle/gems/ruby/2.2.0/gems/warden-1.2.3/lib/warden/manager.rb:34:incall' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/etag.rb:24:in
call'.bundle/gems/ruby/2.2.0/gems/rack-1.6 .4/lib/rack/conditionalget.rb:38:incall' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/head.rb:13:in
call'.bundle/gems/ruby/2.2.0/gems/remotipart-1.2.1/lib/remotipart/middleware.rb:27:incall' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/params_parser.rb:27:in
call'.bundle /gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/flash.rb:260:incall' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:in
context' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4 /lib/rack/session/abstract/id.rb:220:incall' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/cookies.rb:560:in
调用'.bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/query_cache.rb:36:in call'.bundlecall' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in
/gems/ruby/2.2.0/gems/activerecord-4.2 .3/lib/active_record/migration.rb:377:incall' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/callbacks.rb:29:in
block in call' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:84:inrun_callbacks' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/callbacks.rb:27:in
call' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/reloader.rb:73:incall' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/remote_ip.rb:78:in
call' .bundle/gems/ruby/2.2.0/gems/rollbar-1.5 .3/lib/rollbar/middleware/rails/rollbar.rb:24:inblock in call' .bundle/gems/ruby/2.2.0/gems/rollbar-1.5.3/lib/rollbar.rb:799:in
scoped' .bundle/gems/ruby/2.2.0/gems/rollbar-1.5.3/lib/rollbar/middleware/rails/rollbar.rb :22:incall' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:17:in
call' .bundle/gems/ruby/2.2.0/gems/rollbar-1.5.3/lib/rollbar/middleware/rails/show_exceptions.rb:22:incall_with_rollbar' .bundle/gems/ruby/2.2.0/gems/web-console-2.1.2/lib/web_console/middleware.rb:37:in
调用'.bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/show_exceptions.rb:30:incall' .bundle/gems/ruby/2.2.0/gems/railties-4.2.3/lib/rails/rack/logger.rb:38:in
call_app'.bundle/gems/ruby/2.2.0/gems/railties -4.2.3/lib/rails/rack/logger.rb:20:inblock in call' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/tagged_logging.rb:68:in
block in tagged' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/tagged_logging.rb:26 :在tagged' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/tagged_logging.rb:68:in
标记中'.bundle/gems/ruby/2.2.0/gems/railties-4.2.3/lib/rails/rack/logger.rb:20:incall' .bundle/gems/ruby/2.2.0/gems/ahoy_matey-1.1.1/lib/ahoy/engine.rb:20:in
call_with_quiet_ahoy'.bundle/gems/ruby/2.2.0/gems /request_store-1.1.0/lib/request_store/middleware.rb:8:incall' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/request_id.rb:21:in
call' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:incall' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/runtime.rb:18:in
调用'.bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/cache/strategy/local_cache_middleware.rb:28:incall' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/lock.rb:17:in
调用'.bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/static.rb:116:in call'.bundlecall' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in
/gems/ruby/2.2.0/gems/railties -4.2.3/lib/rails/engine.rb:518:in call'.bundlecall' .bundle/gems/ruby/2.2.0/gems/railties-4.2.3/lib/rails/application.rb:165:in
/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/content_length.rb:15:incall' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in
handle_request' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:inprocess_client' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in
block in run' .bundle/gems/ruby/2.2.0/gems/puma-2.11 .2/lib/puma/thread_pool.rb:104:incall' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in
block in spawn_thread'
ruby-on-rails - 使用 Rspec 测试 Mailchimp 3.0 和 Gibbon 2.x
我有一个使用 Gibbon gem 通过 MailChimp 注册时事通讯的 rails 4.2 应用程序。
这是我的初始化程序:
下面是user.rb中的相关方法:
我仍在学习 Rspec,在 Gibbon::MailChimp 的上下文中应用它时遇到了麻烦。我想根据用户当前的状态测试订阅、取消订阅是否按预期工作。例如,取消订阅的用户与需要在 MailChimp 上创建订阅的新订阅者不同。
ruby-on-rails - 在 Gibbon 和 Devise 注册时将用户添加到邮件黑猩猩列表
我试图弄清楚当他们注册我的应用程序时如何将用户添加到我的邮件黑猩猩列表中。我使用 Gibbon 进行邮件黑猩猩和 Devise 进行身份验证。
这是相关文件(我认为)..
初始化/长臂猿.rb
用户.rb
尝试重新启动 Rails 服务器时出现错误。
我已经尝试将它添加到我的 gem 文件中,但是当我运行 bundle install 时它不会连接到 github。
所以目前我的gem文件中有这个
关于我需要做些什么来解决这个问题的任何建议?
还有人知道用设计实现长臂猿的好指南吗?我不确定我是否正确执行此操作。我是否需要在我的 registrations/new.html.erb 文件中添加一些内容以方便将用户添加到列表中?
ruby-on-rails - 长臂猿的 Rails Mailchimp API 错误
这里相当大的新手。尝试使用邮件列表订阅设置 ruby on rails 应用程序,通过长臂猿发送到 mailchimp。我最初遇到了 API KEY 的问题,但是在为我的 config/secrets.yml 修复了路由和我的 ~/.bashrc 之后,没有吐出这个错误
我的假设是我对环境变量的使用隐藏了 URL 中的信息,它仅使用非 ascii 字符并导致此问题。有什么建议么?
ruby-on-rails - 如何使用 Gibbon gem 编辑 mailchimp 列表中现有成员的电子邮件地址
我已经四处寻找了很长时间,但找不到任何答案。在我的 rails 4 应用程序中,我使用 Gibbon gem (v.2.0.1) 来管理 mailchimp 列表。就订阅和取消订阅用户而言,一切正常,但我无法更新订阅用户的电子邮件地址(尽管我可以更改名字和姓氏等每个参数)。
我的更新电话看起来像:
我也尝试过upsert,但没有运气。实际上可以更新mailchimp中的电子邮件还是我需要删除用户并创建一个新用户?谢谢您的帮助
ruby-on-rails - 未定义的方法和未初始化的常量错误
嘿伙计们,我正在尝试使用长臂猿 gem 集成 Mailchimp API,但我一直在保存error undefined method
'`。
我的控制器代码:
这在开始集成之前运行良好。所以为了调试我删除的错误@subscriber.save
,看看会发生什么。然后我得到一个新的错误uninitialized constant Gibbon::Request in subscriber.rb
。我的subscriber.rb 代码:
我已经尝试了至少十几种不同的修复方法。我尝试了不同版本的长臂猿宝石,似乎没有任何效果。我尝试对我的 API 密钥进行硬编码,而不是从 secrets.yml 中获取它。我现在已经没有选项了,还有其他关于谷歌的问题。我的问题似乎没有解决方案。
如果您需要我项目中的任何其他代码,我们将不胜感激。
编辑:
我能够undefined method save
通过添加ActiveRecord::Base
而不是删除错误include ActiveModel::Model
。但我仍然得到uninitialized constant Gibbon::Request
错误。
ruby-on-rails - Gibbon/Mailchimp API 请求在兴趣分组内创建兴趣
我正在为 Mailchimp 使用Gibbon版本 2.2.1,我希望能够在兴趣组中创建兴趣。例如,我有订阅课程的用户。我的兴趣组是“课程”,该兴趣组内部的兴趣是“Foo课程”。
我希望能够添加在我网站的 CMS 中添加新类的功能,这将在after_create
.
我不断收到此错误:
这告诉我的是我没有使用正确的资源名称?在 Gibbon 的有限文档中似乎没有任何此类请求的文档,Mailchimp 似乎也没有考虑过。 这是 Mailchimp 文档的链接,该链接涵盖了兴趣组内的兴趣请求,但是,似乎没有创建选项......只需阅读、编辑和删除。这对我来说似乎很愚蠢,因为我可以想象人们会想从 Mailchimp 仪表板以外的其他地方创建兴趣。
我尝试使用name
、title
和interest_name
作为资源名称,但没有任何效果。我也尝试过使用 REST API 调用,但我收到了相同的响应。
我做错了什么,或者这真的是 Mailchimp 不提供的东西吗?如果是这样,那将是一个巨大的麻烦,因为我将创建许多我希望人们能够订阅的类,而必须手动完成这一切将是一个很大的痛苦。
ruby-on-rails - Gibbon Gem Mailchimp 表单问题
我不知道为什么,但电子邮件没有传递到我的 Mailchimp 列表中。单击提交按钮不会执行任何操作。有什么想法吗?
宝石文件:
index.html.erb:
模型/welcome.rb:
初始化器/长臂猿.rb:
路线.rb:
控制器/welcome_controller.rb: