amro / gibbon Goto Github PK
View Code? Open in Web Editor NEWGibbon is an API wrapper for MailChimp's API
Home Page: https://github.com/amro/gibbon
License: MIT License
Gibbon is an API wrapper for MailChimp's API
Home Page: https://github.com/amro/gibbon
License: MIT License
Hi, I've just set up a new mailchimp account & list. Is there any reason why this api call, results in the user receiving the double optin email? Is there anything I need to do on the mailchimp webinterface?
gb.lists.subscribe({:id => 'my_list_id', :double_optin => false, :send_welcome => false, :email => {email: user.email}})
Hi,
trying to install the gibbon gem under jruby 1.6.1 I get the following error with a (very very long) stacktrace.
$ gem install gibbon
System.java:-2:in `arraycopy': java.lang.ArrayIndexOutOfBoundsException
from DefaultResolver.java:111:in `makeTime'
from DefaultResolver.java:277:in `create'
from DefaultResolver.java:317:in `handleScalar'
from DefaultResolver.java:435:in `orgHandler'
from DefaultResolver.java:455:in `node_import'
from DefaultResolver$s$1$0$node_import.gen:65535:in `call'
from CachingCallSite.java:137:in `call'
from RubyLoadHandler.java:40:in `handle'
from Parser.java:300:in `addNode'
from DefaultYAMLParser.java:676:in `yyparse'
from Parser.java:290:in `yechtparse'
from Parser.java:284:in `parse'
from YParser.java:152:in `load'
from YParser$s$0$1$load.gen:65535:in `call'
from JavaMethod.java:630:in `call'
from DynamicMethod.java:205:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from CallOneArgNode.java:57:in `interpret'
from LocalAsgnNode.java:123:in `interpret'
from NewlineNode.java:103:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from CallOneArgNode.java:57:in `interpret'
from LocalAsgnNode.java:123:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from CallOneArgNode.java:57:in `interpret'
from NewlineNode.java:103:in `interpret'
from RescueNode.java:216:in `executeBody'
from RescueNode.java:120:in `interpretWithJavaExceptions'
from RescueNode.java:110:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from FCallOneArgNode.java:36:in `interpret'
from InstAsgnNode.java:95:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from EnsureNode.java:96:in `interpret'
from BeginNode.java:83:in `interpret'
from NewlineNode.java:103:in `interpret'
from WhenOneArgNode.java:36:in `whenSlowTest'
from WhenOneArgNode.java:46:in `when'
from CaseNode.java:133:in `interpret'
from NewlineNode.java:103:in `interpret'
from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
from InterpretedBlock.java:374:in `evalBlockBody'
from InterpretedBlock.java:347:in `yield'
from InterpretedBlock.java:304:in `yield'
from Block.java:130:in `yield'
from YieldNode.java:112:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
from InterpretedBlock.java:374:in `evalBlockBody'
from InterpretedBlock.java:295:in `yield'
from InterpretedBlock.java:229:in `yieldSpecific'
from Block.java:99:in `yieldSpecific'
from RubyKernel.java:1418:in `loop'
from RubyKernel$s$0$0$loop.gen:65535:in `call'
from CachingCallSite.java:272:in `cacheAndCall'
from CachingCallSite.java:114:in `callBlock'
from CachingCallSite.java:123:in `callIter'
from FCallNoArgBlockNode.java:32:in `interpret'
from NewlineNode.java:103:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:169:in `call'
from DefaultMethod.java:171:in `call'
from CachingCallSite.java:272:in `cacheAndCall'
from CachingCallSite.java:114:in `callBlock'
from CachingCallSite.java:123:in `callIter'
from CallNoArgBlockNode.java:64:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:255:in `call'
from DefaultMethod.java:203:in `call'
from CachingCallSite.java:312:in `cacheAndCall'
from CachingCallSite.java:182:in `callBlock'
from CachingCallSite.java:186:in `call'
from RubyClass.java:806:in `newInstance'
from RubyClass$i$newInstance.gen:65535:in `call'
from JavaMethod.java:283:in `call'
from WrapperMethod.java:62:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:173:in `call'
from FCallTwoArgNode.java:38:in `interpret'
from LocalAsgnNode.java:123:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from EnsureNode.java:96:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:255:in `call'
from DefaultMethod.java:203:in `call'
from CachingCallSite.java:312:in `cacheAndCall'
from CachingCallSite.java:182:in `callBlock'
from CachingCallSite.java:186:in `call'
from CallTwoArgBlockPassNode.java:62:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:298:in `call'
from DefaultMethod.java:219:in `call'
from CachingCallSite.java:332:in `cacheAndCall'
from CachingCallSite.java:216:in `callBlock'
from CachingCallSite.java:225:in `callIter'
from CallThreeArgBlockNode.java:64:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:276:in `call'
from DefaultMethod.java:211:in `call'
from CachingCallSite.java:322:in `cacheAndCall'
from CachingCallSite.java:207:in `call'
from FCallThreeArgNode.java:40:in `interpret'
from NewlineNode.java:103:in `interpret'
from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
from InterpretedBlock.java:374:in `evalBlockBody'
from InterpretedBlock.java:347:in `yield'
from InterpretedBlock.java:304:in `yield'
from Block.java:130:in `yield'
from RubyIO.java:1121:in `open'
from RubyKernel.java:298:in `open'
from RubyKernel$s$0$2$open.gen:65535:in `call'
from DynamicMethod.java:217:in `call'
from CachingCallSite.java:312:in `cacheAndCall'
from CachingCallSite.java:182:in `callBlock'
from CachingCallSite.java:191:in `callIter'
from FCallTwoArgBlockNode.java:34:in `interpret'
from NewlineNode.java:103:in `interpret'
from RescueNode.java:216:in `executeBody'
from RescueNode.java:120:in `interpretWithJavaExceptions'
from RescueNode.java:110:in `interpret'
from BeginNode.java:83:in `interpret'
from NewlineNode.java:103:in `interpret'
from IfNode.java:119:in `interpret'
from IfNode.java:119:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:233:in `call'
from DefaultMethod.java:195:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:173:in `call'
from CallTwoArgNode.java:59:in `interpret'
from InstAsgnNode.java:95:in `interpret'
from NewlineNode.java:103:in `interpret'
from RescueNode.java:216:in `executeBody'
from RescueNode.java:120:in `interpretWithJavaExceptions'
from RescueNode.java:110:in `interpret'
from BeginNode.java:83:in `interpret'
from NewlineNode.java:103:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:147:in `call'
from DefaultMethod.java:163:in `call'
from CachingCallSite.java:262:in `cacheAndCall'
from CachingCallSite.java:105:in `call'
from VCallNode.java:85:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:255:in `call'
from DefaultMethod.java:203:in `call'
from CachingCallSite.java:312:in `cacheAndCall'
from CachingCallSite.java:182:in `callBlock'
from CachingCallSite.java:186:in `call'
from RubyClass.java:806:in `newInstance'
from RubyClass$i$newInstance.gen:65535:in `call'
from JavaMethod.java:283:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:173:in `call'
from CallTwoArgNode.java:59:in `interpret'
from DAsgnNode.java:110:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
from InterpretedBlock.java:374:in `evalBlockBody'
from InterpretedBlock.java:347:in `yield'
from InterpretedBlock.java:304:in `yield'
from Block.java:130:in `yield'
from RubyArray.java:1595:in `eachCommon'
from RubyArray.java:1602:in `each'
from RubyArray$i$0$0$each.gen:65535:in `call'
from CachingCallSite.java:272:in `cacheAndCall'
from CachingCallSite.java:114:in `callBlock'
from CachingCallSite.java:123:in `callIter'
from CallNoArgBlockNode.java:64:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:233:in `call'
from DefaultMethod.java:195:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:173:in `call'
from CallTwoArgNode.java:59:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from RescueNode.java:216:in `executeBody'
from RescueNode.java:120:in `interpretWithJavaExceptions'
from RescueNode.java:110:in `interpret'
from BeginNode.java:83:in `interpret'
from NewlineNode.java:103:in `interpret'
from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
from InterpretedBlock.java:374:in `evalBlockBody'
from InterpretedBlock.java:347:in `yield'
from InterpretedBlock.java:304:in `yield'
from Block.java:130:in `yield'
from RubyArray.java:1595:in `eachCommon'
from RubyArray.java:1602:in `each'
from RubyArray$i$0$0$each.gen:65535:in `call'
from CachingCallSite.java:272:in `cacheAndCall'
from CachingCallSite.java:114:in `callBlock'
from CachingCallSite.java:123:in `callIter'
from CallNoArgBlockNode.java:64:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:147:in `call'
from DefaultMethod.java:163:in `call'
from CachingCallSite.java:262:in `cacheAndCall'
from CachingCallSite.java:105:in `call'
from VCallNode.java:85:in `interpret'
from NewlineNode.java:103:in `interpret'
from IfNode.java:119:in `interpret'
from IfNode.java:119:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from CallSpecialArgNode.java:67:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from CaseNode.java:138:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from FCallOneArgNode.java:36:in `interpret'
from NewlineNode.java:103:in `interpret'
from RescueNode.java:216:in `executeBody'
from RescueNode.java:120:in `interpretWithJavaExceptions'
from RescueNode.java:110:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from CallOneArgNode.java:57:in `interpret'
from NewlineNode.java:103:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:190:in `call'
from DefaultMethod.java:179:in `call'
from CachingCallSite.java:282:in `cacheAndCall'
from CachingCallSite.java:139:in `call'
from /Users/einar/.rvm/rubies/jruby-1.6.1/bin/gem:25:in `chained_0_rescue_1$RUBY$SYNTHETIC__file__'
from /Users/einar/.rvm/rubies/jruby-1.6.1/bin/gem:24:in `__file__'
from /Users/einar/.rvm/rubies/jruby-1.6.1/bin/gem:-1:in `load'
from Ruby.java:671:in `runScript'
from Ruby.java:575:in `runNormally'
from Ruby.java:424:in `runFromMain'
from Main.java:278:in `doRunFromMain'
from Main.java:198:in `internalRun'
from Main.java:164:in `run'
from Main.java:148:in `run'
from Main.java:128:in `main'
Here is the code for subscribing a new user to a list.
I am using the direct list id that mailchimp provides in my list settings. However, for some reason it subcribes to the wrong list.
Any ideas of why this is occuring?
gb = Gibbon.new
gb.list_subscribe(:id => "***********", :email_address => @user.email, :merge_vars => {'fname' => @user.first_name, 'lname' => @user.last_name }, :email_type => "html", :double_optin => false, :send_welcome => false)
Thanks!
Operations such as lists.batch_subscribe
return errors in an errors
array, rather than a single error
value that the response handler expects. At the moment if an error occurs during that operation gibbon silently returns.
As we can't raise individual errors for each error in the array we have two choices:
Gibbon::MailChimpError
for the first error in the arrayGibbon::MultipleMailChimpErrors
to encapsulate all of the errorsThoughts?
Sometimes mailchimp returns non-JSON response like
<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY> An error occurred while processing your request.<p> Reference #97.200fd717.1399515926.55f85ee </BODY></HTML>
on API call to lists.subscribe()
.
That results in MultiJson::ParseError
on call to MultiJson.load()
https://github.com/amro/gibbon/blob/master/lib/gibbon/api_category.rb#L33
Timestamp columns are quoted with comma in them, system where the files comes from doesn't allow changing delimiter.
ERROR: extra data after last expected column
CONTEXT: COPY five9_contacts, line 2: "1,"Tue, 6 Nov 2012 12:31:29","Thu, 6 Dec 2012 17:27:50",0,Gabby Balajadia,9252988468,,,Gabby,Balajad..."
Hi, trying to subscribe an email to an existing list but failing:
Gibbon::API.lists.subscribe( { :id => 'foofoo', :email_address => '[email protected]' } )
Gibbon::MailChimpError: MailChimp API Error: You must specify a email value (code -100)
An API key has been registered and I can successfully see all my lists.
Any idea why this is happening?
I have an initializer titled mailchimp.rb
in my /lib
directory with the following:
Gibbon::API.api_key = "API_KEY_HERE"
In console if i run Gibbon::API.new
the api_key
is not set. Any reason why this wouldn't work?
Ruby 1.9.2-p180, Rails 3.1.0.rc4.
The following error occurs for API call I've tried.
> mc = Gibbon::API.new("MY_API_KEY")
=> #<Gibbon::API:0x000001033822d8 @apikey="MY_API_KEY", @default_params={:apikey=>"MY_API_KEY"}>
ruby-1.9.2-p180 :012 > mc.campaigns
Psych::SyntaxError: couldn't parse YAML at line 1 column 218
from /Users/jonmccartie/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/psych.rb:148:in `parse'
from /Users/jonmccartie/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/psych.rb:148:in `parse_stream'
from /Users/jonmccartie/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/psych.rb:119:in `parse'
from /Users/jonmccartie/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/psych.rb:106:in `load'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/crack-0.1.8/lib/crack/json.rb:12:in `parse'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/parser.rb:116:in `json'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/parser.rb:136:in `parse_supported_format'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/parser.rb:103:in `parse'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/parser.rb:66:in `call'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/request.rb:217:in `parse_response'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/request.rb:189:in `handle_response'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty/request.rb:71:in `perform'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty.rb:390:in `perform_request'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/httparty-0.7.8/lib/httparty.rb:358:in `post'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/gibbon-0.1.6/lib/gibbon.rb:31:in `call'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/gibbon-0.1.6/lib/gibbon.rb:46:in `method_missing'
from (irb):12
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/railties-3.1.0.rc4/lib/rails/commands/console.rb:45:in `start'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/railties-3.1.0.rc4/lib/rails/commands/console.rb:8:in `start'
from /Users/jonmccartie/.rvm/gems/ruby-1.9.2-p180@default/gems/railties-3.1.0.rc4/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
I've seen your latest commit seems to be about this problem's correction;
bu I keep having the following :
OpenSSL::SSL::SSLError: hostname "api.mailchimp.com" does not match the server certificate
This link (http://stackoverflow.com/questions/21792418/mail-chimp-rails-gibbon-gem-hostname-does-not-match-the-server-certificate) quite explains it well, but it does not change anything
Thanks if you have any clues about this problem
g = Gibbon::API.new(MAILCHIMP_API_KEY)
#=> #<Gibbon::API:0x00000007ad89d0 @api_key="KEY", @api_endpoint=nil, @timeout=nil, @throws_exceptions=nil, @default_params={:apikey=>"KEY"}>
g.templates
#=> #<Gibbon::APICategory:0x00000007100cc8 @category_name="templates", @api_key="KEY", @api_endpoint=nil, @default_params={:apikey=>"KEY"}, @throws_exceptions=true, @timeout=30>
g.respond_to?(:templates)
#=> false
g.methods.include?(:templates)
#=> false
I believe that g.respond_to?(:templates)
should return true. Maybe via g.respond_to_missing?(:templates)
? What do you think?
Hello there,
Thanks for this awesome project, it have helped us a lot during our work.
However, we have a problem, with errors like this:
<Gibbon::MailChimpError: MailChimp API Error: [email protected]
is already subscribed to list Developer test. <a href="http://billetto.us5.
list-manage.com/subscribe/send-email?u=SOMETHING&id=SOMETHING_ELSE&e=SOMETHING_ELSE2=">Click here to update your profile.
</a>(code 214)>
We are not interested in exactly this error to show up in our exception-list. This is a user error, that we want to ignore when we see it.
To catch an exception like this is pretty darn ugly because we will have to put it in a wrapper and actually look a the return, or the error code ((code 214)
).
Could we push for some more sensible exceptions?
There is a lot of exceptions to take care of: http://apidocs.mailchimp.com/api/rtfm/exceptions.field.php
Any email that contains a plus sign (which is actually valid) MailChimp sends back an "email invalid" error message. When using the form from MailChimp there are no problems with this. So I guess this is about how gibbon processes the data for transmission.
gb.lists.subscribe({:id => list_id, :email => {:email => 'email_address'}, :merge_vars => {:FNAME => 'First Name', :LNAME => 'Last Name'}, :double_optin => false})
When using the code above the welcome email is not sent even though in the readme it says that it will.
After installing the gibbon gem to my app, I get an error message while trying to start the server or the console.
[1] $ rails s
/Users/lurraca/.rvm/gems/[email protected]/gems/gibbon-0.4.6/lib/gibbon.rb:8:in `<class:Gibbon>': undefined method `default_timeout' for Gibbon:Class (NoMethodError)
from /Users/lurraca/.rvm/gems/[email protected]/gems/gibbon-0.4.6/lib/gibbon.rb:5:in `<top (required)>'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `require'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `each'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `block in require'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `each'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `require'
from /Users/lurraca/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler.rb:119:in `require'
from /Users/lurraca/Desktop/projects/pixelpt/shop.pr-web.rails/config/application.rb:6:in `<top (required)>'
from /Users/lurraca/.rvm/gems/[email protected]/gems/railties-3.2.11/lib/rails/commands.rb:53:in `require'
from /Users/lurraca/.rvm/gems/[email protected]/gems/railties-3.2.11/lib/rails/commands.rb:53:in `block in <top (required)>'
from /Users/lurraca/.rvm/gems/[email protected]/gems/railties-3.2.11/lib/rails/commands.rb:50:in `tap'
from /Users/lurraca/.rvm/gems/[email protected]/gems/railties- 3.2.11/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
When querying for a specific list using :list_id it returns all lists if the list_id does not match anything. It should return an empty set.
Is this supported with Gibbon, and if so how?
I need to sign some people up to a specific group.
Thanks for your help last time,
I just recently upgraded to Rails 3.1 and in the process I caught an issue with the list_subscribe method, it was a JSON parse error as shown here: https://gist.github.com/1680053
I downgraded gibbon back to 0.3.1 and everything ran fine.
I have an integer merge variable that using the Mailchimp website I can unset by clearing the field. However, calling .lists.batch_subscribe
with update_existing: true
and merge_vars: { test_var: nil }
does not unset test_var, it just leaves the existing value in there.
Performing the same query with :test_var
set to a non nil value works fine.
(Apologies if this is not a gibbon issue but an API one, but theres no support links in the README!)
2.1.1 :007 > gb.lists.list
OpenSSL::SSL::SSLError: hostname "api.mailchimp.com" does not match the server certificate
from /Users/mmahalwy/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/openssl/ssl.rb:139:in `post_connection_check'
from /Users/mmahalwy/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http.rb:922:in `connect'
from /Users/mmahalwy/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
from /Users/mmahalwy/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http.rb:852:in `start'
from /Users/mmahalwy/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http.rb:1369:in `request'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/rack-mini-profiler-0.9.1/lib/patches/net_patches.rb:7:in `block in request_with_mini_profiler'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/rack-mini-profiler-0.9.1/lib/mini_profiler/profiling_methods.rb:40:in `step'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/rack-mini-profiler-0.9.1/lib/patches/net_patches.rb:6:in `request_with_mini_profiler'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/httparty-0.13.1/lib/httparty/request.rb:93:in `perform'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/httparty-0.13.1/lib/httparty.rb:521:in `perform_request'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/httparty-0.13.1/lib/httparty.rb:473:in `post'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/gibbon-1.1.2/lib/gibbon/api_category.rb:28:in `call'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/gibbon-1.1.2/lib/gibbon/api_category.rb:48:in `method_missing'
from (irb):7
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/railties-4.0.4/lib/rails/commands/console.rb:90:in `start'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/railties-4.0.4/lib/rails/commands/console.rb:9:in `start'
from /Users/mmahalwy/.rvm/gems/ruby-2.1.1/gems/railties-4.0.4/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'2.1.1 :008 >
A few folks (including me) have run into an issue where adding gem 'gibbon'
to their gemfile is pulling down the older version of Gibbon, which is out of sync with the current docs.
I understand you're updating Gibbon for the new 2.0 API (and thank you for doing it!), but you may want to update the Readme to reflect the fact that people need to download from github vs. rubygems to get the features discussed in the doc.
See StackOverflow describing this issue here: http://stackoverflow.com/questions/17228587/why-does-gibbon-throw-uninitialized-constant-gibbonapi-nameerror/
Thanks again for your work on Gibbon! <3
I am using below code to add new subscriber to MailChimp but its not working for updating scriber..
can anyone help me how to update existing subscriber to mailchimp?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using PerceptiveMCAPI.Types;
using PerceptiveMCAPI;
using PerceptiveMCAPI.Methods;
using System.Web.UI.MobileControls;
namespace FilmAppWeb.Mailchip
{
public class MailChip
{
public void AddMailChip(String first_name, String last_name, String email)
{
List lstsub = new List();
Subscriber scb = new Subscriber();
scb.email = email;
scb.first_name = first_name;
scb.last_name = last_name;
lstsub.Add(scb);
listBatchSubscribe_method(lstsub);
}
public void listBatchSubscribe_method(List<Subscriber> SubscriberList)
{
listBatchSubscribeInput input = new listBatchSubscribeInput();
// any directive overrides
input.api_Validate = true;
input.api_AccessType = EnumValues.AccessType.Serial;
input.api_OutputType = EnumValues.OutputType.JSON;
// method parameters
input.parms.apikey = MCAPISettings.default_apikey;
input.parms.id = System.Configuration.ConfigurationManager.AppSettings["ListID"];
input.parms.double_optin = false;
input.parms.replace_interests = true;
input.parms.update_existing = true;
//
List<Dictionary<string, object>> batch =
new List<Dictionary<string, object>>();
foreach (Subscriber sub_rec in SubscriberList)
{
Dictionary<string, object> entry = new Dictionary<string, object>();
entry.Add("EMAIL", sub_rec.email);
// entry.Add("EMAIL_TYPE", sub_rec.email_type);
entry.Add("FNAME", sub_rec.first_name);
entry.Add("LNAME", sub_rec.last_name);
//DateTime next_payment = sub_rec.last_payment.AddMonths(1);
//entry.Add("NEXTPAY", next_payment);
batch.Add(entry);
}
input.parms.batch = batch;
// execution
listBatchSubscribe cmd = new listBatchSubscribe(input);
listBatchSubscribeOutput output = cmd.Execute();
// output, format with user control
if (output.api_ErrorMessages.Count > 0)
{
//showResults(output.api_Request, output.api_Response, // raw data
//output.api_ErrorMessages, output.api_ValidatorMessages); // & errors
//string apikey = System.Configuration.ConfigurationManager.AppSettings["mailchimpapikey"];
//string listId = System.Configuration.ConfigurationManager.AppSettings["ListID"];
//var inputs = new listInterestGroupingsInput(apikey, listId);
//var lig = new listInterestGroupings(inputs);
//var success = lig.Execute(inputs);
}
else
{
//show_listBatch1.Display(output);
//campaignFoldersInput inputs = new campaignFoldersInput("459dad38ff06152f5eba1c4c7b3776b4-us3");
//inputs.api_Validate = true;
//inputs.api_AccessType = EnumValues.AccessType.Serial;
//inputs.api_OutputType = EnumValues.OutputType.JSON;
//// method parameters
//inputs.parms.apikey = MCAPISettings.default_apikey;
//inputs.parms.apikey = "459dad38ff06152f5eba1c4c7b3776b4-us3";
//campaignFolders folders = new campaignFolders(inputs);
//campaignFoldersOutput outputs = folders.Execute();
}
}
public class Subscriber
{
public object first_name;
public object last_name;
public object email_type;
public DateTime last_payment;
public object email { get; set; }
}
}
In Rails 2.3.11 I found that instead of
Gibbon.new(API_KEY)
as specified in the Readme, I needed to do
Gibbon:API.new(API_KEY)
I am attempting to add some Mailchimp integration to a Rails app. However, all of the requests I make inside of Rails hang indefinitely.
I made the same call (directly from the docs) gb.campaigns.list({:start => 0, :limit => 100})
which works in irb
but does not work inside of Rails. I am using the same code in both to make the calls, and I also ensured that API keys are set correctly.
Any ideas why it might not work inside of Rails?
campaign_create is meant to return the campaign_id but it is returned without decoding i.e. surrounded by quotation marks
campaign_send is meant to return a boolean, but instead returns a string (true/false)
using ActiveSupport::JSON.decode instead of JSON.parse appears to resolve this.
Today Mailchimp launches the 2.0 API, which differs from the 1.3 version. I'm new to Mailchimp and I want to start development with the edge version (when our stuff will go to production, the edge will be already stable).
I'm trying to decide which gem should I use and I want to know, will gibbon have support of the 2.0 API or not. If it will be so, then what must be changed and how can I contribute?
Thank you.
Hi,
if call gb = Gibbon::API.new('XXXXXXXXXXXXXXXXXXX-us4')
get:
OpenSSL::SSL::SSLError (hostname "us1.api.mailchimp.com." does not match the server certificate):
note us1
in the url. This happens both with api_keys created with mailchimp panel that those generated with omniauth-mailchimp
.
Have tried also with:
token = 'xxxxxxxxxxxxxxxx-us4'
gb = Gibbon::API.new(token, {api_endpoint:
"https://#{token.split(//).last(3).join}.api.mailchimp.com."})
Same error but in this case the url have us4
.
... and probably other calls that require they be passed in an 'opts' hash.
For example, I want to paginate through a list of 37,000 user accounts (the Export API does not return the rich data I want, for example, the subscription status 'unsubscribed' or 'subscribed') ...
I saw in the Mailchimp documentation that this is possible:
http://apidocs.mailchimp.com/api/2.0/lists/members.php
So, I tried passing 'start' and 'limit' settings like so (this is how you have documented it for listing campaigns and such):
lists.members({:id => MAILCHIMP_LIST_ID, :start => 0, :limit => 1})
... but that doesn't work. Eventually (30m later) I realized I needed to do it like so:
lists.members({:id => MAILCHIMP_LIST_ID, :opts => {:start => 0, :limit => 1}})
Could be helpful to make a note of that in the documentation, or at least, this issue will help others who search for it.
Thanks!
Kevin Trowbridge
I am using below code to add new scriber to mailchimp but its not working for updating scriber..
can anyone help me how to update existing subscriber to mailchimp?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using PerceptiveMCAPI.Types;
using PerceptiveMCAPI;
using PerceptiveMCAPI.Methods;
using System.Web.UI.MobileControls;
namespace FilmAppWeb.Mailchip
{
public class MailChip
{
public void AddMailChip(String first_name, String last_name, String email)
{
List lstsub = new List();
Subscriber scb = new Subscriber();
scb.email = email;
scb.first_name = first_name;
scb.last_name = last_name;
lstsub.Add(scb);
listBatchSubscribe_method(lstsub);
}
public void listBatchSubscribe_method(List<Subscriber> SubscriberList)
{
listBatchSubscribeInput input = new listBatchSubscribeInput();
// any directive overrides
input.api_Validate = true;
input.api_AccessType = EnumValues.AccessType.Serial;
input.api_OutputType = EnumValues.OutputType.JSON;
// method parameters
input.parms.apikey = MCAPISettings.default_apikey;
input.parms.id = System.Configuration.ConfigurationManager.AppSettings["ListID"];
input.parms.double_optin = false;
input.parms.replace_interests = true;
input.parms.update_existing = false;
//
List<Dictionary<string, object>> batch =
new List<Dictionary<string, object>>();
foreach (Subscriber sub_rec in SubscriberList)
{
Dictionary<string, object> entry = new Dictionary<string, object>();
entry.Add("EMAIL", sub_rec.email);
// entry.Add("EMAIL_TYPE", sub_rec.email_type);
entry.Add("FNAME", sub_rec.first_name);
entry.Add("LNAME", sub_rec.last_name);
//DateTime next_payment = sub_rec.last_payment.AddMonths(1);
//entry.Add("NEXTPAY", next_payment);
batch.Add(entry);
}
input.parms.batch = batch;
// execution
listBatchSubscribe cmd = new listBatchSubscribe(input);
listBatchSubscribeOutput output = cmd.Execute();
// output, format with user control
if (output.api_ErrorMessages.Count > 0)
{
//showResults(output.api_Request, output.api_Response, // raw data
//output.api_ErrorMessages, output.api_ValidatorMessages); // & errors
//string apikey = System.Configuration.ConfigurationManager.AppSettings["mailchimpapikey"];
//string listId = System.Configuration.ConfigurationManager.AppSettings["ListID"];
//var inputs = new listInterestGroupingsInput(apikey, listId);
//var lig = new listInterestGroupings(inputs);
//var success = lig.Execute(inputs);
}
else
{
//show_listBatch1.Display(output);
//campaignFoldersInput inputs = new campaignFoldersInput("459dad38ff06152f5eba1c4c7b3776b4-us3");
//inputs.api_Validate = true;
//inputs.api_AccessType = EnumValues.AccessType.Serial;
//inputs.api_OutputType = EnumValues.OutputType.JSON;
//// method parameters
//inputs.parms.apikey = MCAPISettings.default_apikey;
//inputs.parms.apikey = "459dad38ff06152f5eba1c4c7b3776b4-us3";
//campaignFolders folders = new campaignFolders(inputs);
//campaignFoldersOutput outputs = folders.Execute();
}
}
public class Subscriber
{
public object first_name;
public object last_name;
public object email_type;
public DateTime last_payment;
public object email { get; set; }
}
}
}
Hello,
My install just broke because my project is using Ruby 1.9.2 and the last HTTParty requires Ruby version 1.9.3
Not sure how you want to fix this, but I guess the gemspec of Gibbon should either specify the same Ruby version, or specify a HTTParty version prior to this change (like 0.11.0).
This is what I did to deal with the problem:
Instead of letting Bundler deal with this particular dependency, I did gem install httparty -v '0.11.0'
and then gem install gibbon
.
mig
I am running this on console and its adding user in my subscribed_list. Works like charm.
gb.lists.subscribe({:id => list_id, :email => {:email => '[email protected]'}, :merge_vars => {:FNAME => 'Mohit', :LNAME => 'Jain', }, :double_optin => false})
Now I want to subscriber to groups: Like I have a group " User Type" which has some predefined 4 values. How can I map this User Type in subscribe method?
According to the post found in their google group, the MailChimp API does not support communicating via a proxy.
I have read that there are some patches like this one, and I would like to know if it possible to implement this in Gibbon. If so, kindly point me to the "right direction", i.e. which modules and files I should look into, and then I will make a pull request, assuming you want this workaround to be part of the gem.
Thank you.
I think lastest httparty gem get some udpates that broke current gibbon version ?
Could you tell me what is the correct httparty version you are using.
This is extracted from my Gemfile.lock :
gibbon (0.3.5)
httparty (> 0.6.0)
httparty (> 0.6.0)
json (> 1.4.0)
json (> 1.4.0)
rdoc
[...]
httparty (0.9.0)
multi_json (~> 1.0)
multi_xml
I am doing some test API calls to my MailChimp account and I am trying to subscribe a new user to a test list and I am submitting the merge_vars in with the call, but none of the variables are getting set.
Here is my test code:
mc.listSubscribe({:id => "list_id_here", :email_address => "[email protected]", :merge_vars => ["FNAME" => "Chimpy", "LNAME" => "Chimperson"], :double_optin => false})
I have a list. That has multiple groups and each group has 2-3 groups. I want to get the first group and then the next group and subscribe to that. How can I obtain this with this api?
I have initialize my mailchimp object but when i try to get grouping_id igot following error
(rdb:34) mc.grouping_id
*** Gibbon::MailChimpError Exception: MailChimp API Error: Unknown method "list_interest_groupings/first" (code -32601)
Minor, but it'd be useful to see an example in the readme of unsubscribing a single user with the gem. I couldn't find that listed anywhere but dug into the mailchimp API and took a flier and it worked. Let the people know it can be done! :)
(this is from within the User.rb model in a before_destroy callback, hence the "self")
def unsubscribe
mailchimp = Gibbon::API.new
result = mailchimp.lists.unsubscribe({
:id => ENV["MAILCHIMP_LIST_ID"],
:email => {:email => self.email},
:delete_member => true, # this is NOT the default value
:send_notify => true,
:send_goodbye => true
})
Rails.logger.info("Unsubscribed #{self.email} from MailChimp") if result
end
I create a campaign using campaign_create
function and I store the result in campaign_id
variable:
campaign_id = mailchimp.campaign_create(
:type => 'regular',
:options => {
:subject => "xxxxx",
:list_id => list["id"],
:from_email => 'xxxxx',
:from_name => 'xxxxx',
:template_id => 'xxxxx'
},
:content => {
'html_main' => 'xxxxx'
}
)
After that, I want to schedule the campaign using campaign_schedule
function but it returns an error:
mailchimp.campaign_schedule(
:cid => campaign_id,
:schedule_time => (Date.today+3.days).to_s(:db)
)
=> {"error"=>"Invalid Campaign ID: \"308ce5e39d\"", "code"=>300}
I have checked if campaign with that id exists and it seems to be ok. Any ideas?
Thank you.
I'm doing a batch subscribe, and the default 30s wasn't long enough. I tried setting it to 600, but it's still timing out in 30s
gb.timeout = 600
raise gb.timeout.inspect
The above line returns 'nil'
Because of the way that the :throws_exceptions option is pulled out the initializer arguments, when it's set to false, it's not correctly being stored and passed along to the APICategory.
Hi, i have a campaign and want to send it (http://apidocs.mailchimp.com/api/2.0/campaigns/send.php) but doing
gb.campaigns.send cid
thinks its calling the Ruby #send method! How do i pass it through to MailChimp?
Hi,
I'm trying
list = gb.listSubscribe({:id => 'b2c5557688', :email_address => '[email protected]'})
that line reurns true, but is not added to the list, Is something wrong ? or how I can add subscribes to my lists ?
Thanks, regards
Latest version of gibbon gem gives me this error below. Reverted back to 0.4.6 to.
$ rails c
/Users/liouyang/Development/code/Walker/goatee/config/initializers/mailchimp.rb:1:in `<top (required)>': undefined method `new' for Gibbon:Module (NoMethodError)
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:222:in `load'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:222:in `block in load'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:222:in `load'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/engine.rb:609:in `block (2 levels) in <class:Engine>'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/engine.rb:608:in `each'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/engine.rb:608:in `block in <class:Engine>'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `run'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:150:in `block in tsort_each'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:210:in `block (2 levels) in each_strongly_connected_component_from'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:219:in `each_strongly_connected_component_from'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:209:in `block in each_strongly_connected_component_from'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/initializable.rb:44:in `each'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/initializable.rb:44:in `tsort_each_child'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:203:in `each_strongly_connected_component_from'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:182:in `block in each_strongly_connected_component'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:180:in `each'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:180:in `each_strongly_connected_component'
from /Users/liouyang/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/tsort.rb:148:in `tsort_each'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/initializable.rb:54:in `run_initializers'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/application.rb:215:in `initialize!'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/liouyang/Development/code/Walker/goatee/config/environment.rb:5:in `<top (required)>'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/application.rb:189:in `require_environment!'
from /Users/liouyang/.rvm/gems/ruby-1.9.3-p194/gems/railties-4.0.0/lib/rails/commands.rb:63:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Hi,
when i'm trying to create a campaign on our server, i'm getting this error:
result:code-90errorMethod campignCreate is not exported by this server
I tried running it locally and the code seemed to work just fine.
I'm issuing the create_campaign create from within a controller's create (POST) action, does it have something to do with that?
Any idea what's this error?
Thanks,
Roy
Can the mailchimp api call (.listupdatemember) be used? I am having problems using this call
I appreciate any help...Thanks!
When using rescue Gibbon::MailChimpError I am putting the Gibbon::API.errors in a flash.now, instead of getting "some text explaining the error" I get something like: "#Gibbon::APICategory:0x00000001cc60b8"
If I don't have the rescue block in and I submit params that raise an error (e.g. an email that is already subscribed to the list) I get "MailChimp API Error: {submitted email} is already subscribed to {list}. Click here to update your profile. (code 214)" from action controller.
I would expect Gibbon::API.errors to return this message as this is what the Gibbon documentation for error handling states?
I'm sure I'm doing something wrong as I get the API error that I would expect from Mailchimp without having the rescue block in, I guess it is just unclear to me as to where I can pull error messages out through Gibbon?
The line below works and saves everything to mail chimp except the custom "website" value I added. Am I missing something. I derived this by looking at mailchimps 1.3 documentation.
Thanks
gb.listSubscribe({:id => 'XXXX',:email_address => '[email protected]',:double_optin => :false, :merge_vars => {:fname => 'Billy', :lname => 'Smith',:phone => '555-234-2323', :website => 'https://www.example.com'} })
API calls fail for me because of an apparent multi_json issue.
Some of my reading suggests that Farraday and Httparty can't existing together. Is this true?
Also, I've got sever versions of multi_json installed in this project
multi_json (1.6.1, 1.5.0, 1.3.7, 1.3.6, 1.3.5, 1.3.4, 1.3.2, 1.1.0, 1.0.4)
It's conceivable that Gibbon is using the wrong one. Is it possible to specify the correct version of multi_json to use? Which version would you recommend?
Trace:
1.9.2p290 :002 > campaigns = gb.campaigns({:start => 0, :limit => 100})
NoMethodError: undefined method dump' for MultiJson:Module from /Users/eblatt/.rvm/gems/ruby-1.9.2-p290/gems/gibbon-0.4.4/lib/gibbon.rb:41:in
call'
from /Users/eblatt/.rvm/gems/ruby-1.9.2-p290/gems/gibbon-0.4.4/lib/gibbon.rb:66:in `method_missing'
from (irb):2
So I have four groups for MailChimp users:
[
{"name"=>"Free Customers", "interested"=>true},
{"name"=>"Subscribers", "interested"=>false},
{"name"=>"Paying Customers", "interested"=>false},
{"name"=>"Test", "interested"=>true}
]
I have a quick question, at the time when I subscribe a user to MailChimp list, I definetely should have an option to add a user to one or the other group. And then I would like to change based on the user status (either the user is Free or Paid). There is even an API call for this purpose: http://apidocs.mailchimp.com/api/2.0/lists/update-member.php
However it is a bit confusing what sort of merge variables should I put for the group update. As the group change sits really deep...
info["data"].first["merges"]["GROUPINGS"].first["groups"]
Could you please tell me how to change a group of interest of users?
I'm using
Rails 4.0.0
Ruby 2
Gibbon 1.1
MailChimp v2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.