【问题标题】:Subscribe an email with MailChimp API 3.0 in Ruby使用 Ruby 中的 MailChimp API 3.0 订阅电子邮件
【发布时间】:2016-05-25 12:52:14
【问题描述】:

我正在尝试从 Ruby 1.9.3 为用户订阅我的 MailChimp 列表。我有以下代码:

require 'net/http'
require 'digest/md5'

class Email < ActiveRecord::Base
    attr_accessible :email
    validates :email, :confirmation => true

    before_create :chimp_subscribe


    def chimp_subscribe
        api_key = "my api key"
        list_id = "my list id"
        dc = "my data center"
        member_id = Digest::MD5.hexdigest(self.email)

        uri = URI.parse("https://" + dc + ".api.mailchimp.com/3.0/lists/" + list_id + "/members/" + member_id)
        req = Net::HTTP::Put.new(uri.path)
        req.body = { "email" => self.email, "status" => 'subscribed' }.to_json
        req.content_type = "application/json"

        res = Net::HTTP.start(uri.hostname, uri.port) do |http|
            http.request(req)
        end
    end
end

在创建新的Email 之前,它会运行chimp_subscribe。不幸的是,它在请求块中中断了 Errno::ECONNRESET,这意味着 MailChimp 正在重置我的连接。

我在这里遗漏了一些 MailChimp API 参数吗?我很难找到它。

【问题讨论】:

    标签: ruby-on-rails ruby rest mailchimp


    【解决方案1】:

    你请求的服务器是 HTTPS,所以你应该使用 SSL。

    你应该首先要求它:

    require 'openssl'
    

    然后像这样提出你的要求:

    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE # You should use VERIFY_PEER in production
    res = http.request(req)
    

    【讨论】:

    • 跟进:我收到 401 Unauthorized。我添加了一个“用户名:apikey”作为其值的授权标头,但 401 仍然存在。有什么建议吗?
    猜你喜欢
    • 2015-08-13
    • 2015-11-20
    • 2014-04-03
    • 2017-11-13
    • 2017-05-05
    • 2018-07-17
    • 2016-11-28
    • 2019-02-23
    • 2019-11-18
    相关资源
    最近更新 更多