1

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で接続できました。ただし、メールを追加しようとすると、次の応答が返されます。

{"コード"=>400、"メッセージ"=>"リクエストのデシリアライズに失敗しまし
た。ドキュメントを確認して、もう一度やり直してください。
エラーのフィールド: 購読者"}
400

応答getの代わりに要求を変更すると、次のようになります。put

{"コード"=>1, "メッセージ"=>"無効なメールアドレス"}

Campaign Monitor APIのドキュメントに従っているため、何が間違っているのか理解できません。

4

1 に答える 1

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 も存在することを指摘しておきます。

キャンペーン モニター API ジェム

于 2015-10-15T14:38:25.980 に答える