我正在尝试使用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
上的文档进行操作答案 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也可以为您完成所有这些工作。