Форма MailChimp не регистрирует пользователей как ожидающих, пока они не подтвердят по электронной почте

Я пытаюсь синхронизировать список пользователей моих приложений с теми, кто подписан на MailChimp.

Мы используем Gem Gibbon с Rails 4. Все отлично работает, я могу просмотреть статус пользователя по его адресу электронной почты и определить, подписаны ли они, ожидают или нет. Пользователи могут зарегистрироваться через ссылку на онлайн-форму MailChimp или установив флажок в нашем веб-приложении.

Проблема заключается в том, что если пользователь подписывается по ссылке MailChimp, API MailChimp не распознает их как ожидающие. В результате наше приложение получает ноль, а не "в ожидании", что происходит, если они регистрируются через флажок.

Поскольку приложение получает ответ nil он указывает пользователю, что он должен поставить галочку, чтобы подписаться на новостную рассылку, которая является awk, так как они уже подписались один раз.

Кроме того, если пользователь установит флажок, предварительно зарегистрировавшись непосредственно в MailChimp, он получит отклонение с ошибкой 400, поскольку у MailChimp уже есть адрес электронной почты.

Моя цель - иметь возможность точно отражать в приложении информацию о подписке, ожидании пользователя и т. Д. В MailChimp.

Ошибка и полная трассировка ниже:

.bundle / камни / рубин / 2.2.0 / драгоценные камни / гиббонов-2.0.0/ Библиотека / гиббонов /api_request.rb:100: в handle_error' .bundle/gems/ruby/2.2.0/gems/gibbon-2.0.0/lib/gibbon/api_request.rb:16:inспасти в post ' .bundle/gems/ruby ​​/ 2.2.0 / gems / gibbon-2.0.0/ lib / gibbon /api_request.rb:10: in post' .bundle/gems/ruby/2.2.0/gems/gibbon-2.0.0/lib/gibbon/request.rb:28:inсоздать 'app / models / user.rb: 60: in add_to_mailchimp' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:430:inблок в make_lambda ' .bundle/gems/ruby ​​/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:237: в call' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:237:inпрекратить блокировку ' .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:504:inблок в вызове.bundle / gems / ruby ​​/ 2.2.0 / gems / activesupport-4.2.3 / lib / active_support / callbacks.rb: 504: в each' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:504:inвызвать ' .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/activemodel-4.2.3/lib/active_model/validations/callbacks.rb:113:inrun_validations!".bundle / камни / рубин / 2.2.0 / драгоценные камни / ActiveModel-4.2.3/ Библиотека /active_model/validations.rb:334: в valid?' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/validations.rb:58:inдействует?.bundle / камни / рубин / 2.2.0 / драгоценные камни / ActiveRecord-4.2.3/ Библиотека /active_record/validations.rb:83: в perform_validations' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/validations.rb:37:inсохранить ' .bundle/gems/ruby ​​/2.2.0/gems/activerecord-4.2.3/lib/active_record/attribute_methods/dirty.rb:21:in save' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:286:inблок (2 уровня) в 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: в transaction' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:348:inwith_transaction_returning_status' .bundle/gems/ruby ​​/ 2.2.0 / gems / activerecord-4.2.3/ lib / active_record / Transactions.rb:286: в block in save' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:301:inrollback_active_record_state!.bundle / камни / рубин / 2.2.0 / драгоценные камни / ActiveRecord-4.2.3/ Библиотека /active_record/transactions.rb:285: в save' .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: в 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:213:inблок в транзакции ' .bundle/gems/ruby ​​/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/action.rb:184: в within_new_transaction' .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 / Transactions.rb: 220: в transaction' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/transactions.rb:348:inwith_transaction_returning_status' .bundle/gems/ruby ​​/2.2.0/gems/activerecord-4.2.3/lib/active_record/persistence.rb:250:in update' app/controllers/users_controller.rb:20:inобновить ' .bundle/gems/ruby ​​/ 2.2.0 / gems / actionpack-4.2.3 / lib / action_controller / metal / implicit_render.rb: 4: in send_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/base.rb:198:inprocess_action' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/render.rb: 10: in process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/callbacks.rb:20:inblock в process_action' .bundle/gems/ruby ​​/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:115: в call' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:115:inвызов ' .bundle/gems/ruby ​​/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:553:in block (2 levels) in compile' .bundle/gems/ruby/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:503:inвызов ' .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:88:inrun_callbacks ' .bundle/gems/ruby ​​/ 2.2.0 / gems / actionpack-4.2.3 / lib / abstract_controller / callbacks.rb: 19: in process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/rescue.rb:29:inprocess_action' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/instrumentation.rb:32:in block 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:in instrument' .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: in process_action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/params_wrapper.rb:250:inprocess_action' .bundle/gems/ruby ​​/ 2.2.0 / gems / searchkick-0.8.7 / lib / searchkick / logging.rb: 107: in process_action' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/railties/controller_runtime.rb:18:inprocess_action' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/abstract_controller/base.rb:137:in process' .bundle/gems/ruby/2.2.0/gems/actionview-4.2.3/lib/action_view/rendering.rb:30:inпроцесс ' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal.rb:196:in dispatch' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal/rack_delegation.rb:13:inрассылка ' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_controller/metal.rb:237:in block in action' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:76:inвызов ' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/ routing / route_set.rb: 76: in dispatch' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:45:inserve ' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/ trip /router.rb:43:in block 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/ trip / router.rb: 30: in serve' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/routing/route_set.rb:821:inвызовите ' .bundle/gems/ruby ​​/2.2.0/gems/rack-pjax-0.8.0/lib/rack/pjax.rb:12:in call' .bundle/gems/ruby/2.2.0/gems/bullet-4.14.7/lib/bullet/rack.rb:12:inвызвать ' .bundle/gems/ruby ​​/ 2.2.0 / gems / warden-1.2.3 / lib / warden / manager.rb: 35: in block in call' .bundle/gems/ruby/2.2.0/gems/warden-1.2.3/lib/warden/manager.rb:34:incatch ' .bundle/gems/ruby ​​/2.2.0/gems/warden-1.2.3/lib/warden/manager.rb:34:in call' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/etag.rb:24:inвызовите ' .bundle/gems/ruby ​​/2.2.0/gems/rack-1.6.4/lib/rack/conditionalget.rb:38:in call' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/head.rb:13:inвызвать ' .bundle/gems/ruby ​​/2.2.0/gems/remotipart-1.2.1/lib/remotipart/middleware.rb:27:in call' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/params_parser.rb:27:inвызовите ' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/ middleware / flash.rb: 260: in call' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:incontext ' .bundle/gems/ruby ​​/2.2.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in call' .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' .bundle/gems/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:inвызов ' .bundle/gems/ruby ​​/ 2.2.0 / gems / activerecord-4.2.3/ lib / active_record /igration.rb:377: в call' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/callbacks.rb:29:inблок в вызове ' .bundle/gems/ruby ​​/2.2.0/gems/activesupport-4.2.3/lib/active_support/callbacks.rb:84:in run_callbacks' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/callbacks.rb:27:inвызовите ' .bundle/gems/ruby ​​/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/reloader.rb:73:in call' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/remote_ip.rb:78:inвызовите ' .bundle/gems/ruby ​​/2.2.0/gems/rollbar-1.5.3/lib/rollbar/middleware/rails/rollbar.rb:24:in block in call' .bundle/gems/ruby/2.2.0/gems/rollbar-1.5.3/lib/rollbar.rb:799:inв области видимости ' .bundle/gems/ruby ​​/2.2.0/gems/rollbar-1.5.3/lib/rollbar/middleware/rails/rollbar.rb:22:in call' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:17:inвызовите.bundle / gems / ruby ​​/2.2.0/gems/rollbar-1.5.3/lib/rollbar/middleware/rails/show_exceptions.rb:22:in call_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: in call' .bundle/gems/ruby/2.2.0/gems/railties-4.2.3/lib/rails/rack/logger.rb:38:incall_app ' .bundle/gems/ruby ​​/2.2.0/gems/railties-4.2.3/lib/rails/rack/logger.rb:20:in block in call' .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/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:in call' .bundle/gems/ruby/2.2.0/gems/ahoy_matey-1.1.1/lib/ahoy/engine.rb:20:incall_with_quiet_ahoy ' .bundle/gems/ruby ​​/2.2.0/gems/request_store-1.1.0/lib/request_store/middleware.rb:8:in call' .bundle/gems/ruby/2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/request_id.rb:21:inвызовите ' .bundle/gems/ruby ​​/2.2.0/gems/rack-1.6.4/lib/rack/metadoverride.rb:22:in call' .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/ стратегии /local_cache_middleware.rb:28:in call' .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' .bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/sendfile.rb:113:inвызвать ' .bundle/gems/ruby ​​/2.2.0/gems/railties-4.2.3/lib/rails/engine.rb:518:in call' .bundle/gems/ruby/2.2.0/gems/railties-4.2.3/lib/rails/application.rb:165:inвызовите ' .bundle/gems/ruby ​​/ 2.2.0 / gems / rack-1.6.4 / lib / rack / content_length.rb: 15: in call' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:inhandle_request ' .bundle/gems/ruby ​​/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in process_client' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:inЗапустить блок ' .bundle/gems/ruby ​​/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in call' .bundle/gems/ruby/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:inблок в spawn_thread'

0 ответов

Другие вопросы по тегам