Ruby 错误代码中 MailChimp API 的问题:-90
Posted
技术标签:
【中文标题】Ruby 错误代码中 MailChimp API 的问题:-90【英文标题】:Problems with MailChimp API in Ruby Error Code: -90 【发布时间】:2011-07-10 16:49:55 【问题描述】:我在我的 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
【问题讨论】:
【参考方案1】:我强烈推荐原始人宝石:https://github.com/tatemae-consultancy/hominid
【讨论】:
这是一个梦想。谢谢! +1【参考方案2】:问题在于 Net::HTTP.post_form 没有传递“方法”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 根本不重要。
【讨论】:
【参考方案3】:如果在将散列传递给 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)
【讨论】:
以上是关于Ruby 错误代码中 MailChimp API 的问题:-90的主要内容,如果未能解决你的问题,请参考以下文章
Mailchimp double_optin => false 在 mailchimp-api-ruby 中不起作用
Mailchimp api 3.0错误:“Schema描述对象,找到数组”是代码还是在mailchimp的结尾?