Ruby错误代码中的MailChimp API问题:-90

我在MailChimp控制器中使用以下代码提交简单的新闻通讯数据。当它被发送时,我收到以下错误,因为“方法未被此服务器导出-90”我已在下面附加了我的控制器代码。我正在使用此控制器进行简单的简报注册表单。 (姓名,电邮)
class MailchimpController < ApplicationController

  require "net/http"
  require "uri"

  def subscribe  
    if request.post?
      mailchimp = {}
      mailchimp['apikey']  =  'f72328d1de9cc76092casdfsd425e467b6641-us2'
      mailchimp['id']  =  '8037342dd1874'
      mailchimp['email_address']  =  "email@gmail.com"
      mailchimp['merge_vars[FNAME]']  =  "FirstName"
      mailchimp['output']  =  'json'

      uri = URI.parse("http://us2.api.mailchimp.com/1.3/?method=listSubscribe")
      response = Net::HTTP.post_form(uri, mailchimp)    
      mailchimp = ActiveSupport::JSON.decode(response.body)

      if mailchimp['error']
        render :text =>    mailchimp['error'] + "code:" + mailchimp['code'].to_s  
      elsif mailchimp == 'true'
        render :text => 'ok' 
      else
        render :text => 'error'
      end
    end
   end    

end
    
已邀请:
我强烈推荐Hominid gem:https://github.com/tatemae-consultancy/hominid     
问题是Net :: HTTP.post_form没有传递“method”GET参数。不是一个大红宝石用户,我不确定使用Net :: HTTP的实际正确方法是什么,但是这有效:
require "net/http"
data="apikey=blahblahblah"
response = nil
Net::HTTP.start('us2.api.mailchimp.com', 80) {|http|
  response = http.post('/1.3/?method=lists', data)
}
p response.body
这是lists()方法(为简单起见),你必须建立(和你的值你的urlencode!)你的完整POST参数,而不是简单地提供哈希。 您是否看过许多已经可用于红宝石的宝石? http://apidocs.mailchimp.com/downloads/#ruby 更大的问题,以及我回复此问题的主要原因是,您的API密钥几乎​​没有被混淆。虽然我习惯和他们一起工作,但我能够很快猜到它。我建议立即启动并禁用您帐户中的密钥,然后编辑帖子实际上有完全虚假的数据,而不是接近正确密钥的任何内容。另一方面,列表ID无关紧要。     
如果在将其传递给Net :: HTTP之前将其转换为json,则可以使用哈希。组合代码看起来像:
  mailchimp = {}
  mailchimp['apikey']             =  'APIKEYAPIKEYAPIKEYAPIKEY'
  mailchimp['id']                 =  '8037342dd1874'
  mailchimp['email_address']      =  "email@gmail.com"
  mailchimp['merge_vars[FNAME]']  =  "FirstName"
  mailchimp['output']             =  'json'

  response = nil
  Net::HTTP.start('us2.api.mailchimp.com', 80) {|http|
    response = http.post('/1.3/?method=listSubscribe', mailchimp.to_json)
  }
    

要回复问题请先登录注册