无法向Campaign Monitor API添加电子邮件?

时间:2015-10-14 16:29:37

标签: ruby api httparty campaign-monitor

我正在尝试使用Campaign Monitor API创建一些简单的Ruby代码来添加电子邮件。以下是我的代码。

require 'httparty'
require 'json'

def request
    url = 'https://api.createsend.com/api/v3.1/subscribers/MYLISTID.json'
    auth = {:username => 'MYAPIKEY', :password => 'x'}
    response = HTTParty.post(url,
                  :basic_auth => auth, :body => {
                      'EmailAddress' => 'mike@hotmail.com',
                      'Name' => 'Test',
                      'Resubscribe' => true,
                      'RestartSubscriptionBasedAutoresponders' => true
                  })
    puts response
    puts response.code
end
request

我可以使用API​​连接。但是,当我尝试添加电子邮件时,我收到以下回复。

  

{“Code”=> 400,“消息”=>“无法反序列化您的请求。
  请查看文档,然后重试。
  错误的字段:订阅者“}
     400

当我将请求更改为get而不是put时 我的回答是:

  

{“代码”=> 1,“消息”=>“无效的电子邮件地址”}

我无法理解我做错了什么,因为我已经按照Campaign Monitor API

上的文档进行操作

1 个答案:

答案 0 :(得分:0)

看起来你已经正确设置了所有东西,你只需要将帖子的主体变成json字符串。

  response = HTTParty.post(url,
    :basic_auth => auth, :body => {
       'EmailAddress' => 'mike@hotmail.com',
       'Name' => 'Test',
       'Resubscribe' => true,
       'RestartSubscriptionBasedAutoresponders' => true
     }.to_json)

我想指出一个Campaign Monitor API gem也可以为您完成所有这些工作。

Campaign Monitor API Gem