2016-12-09 15 views
0

私はcreate Mailchimps API(v3)とREST Client gemを使ってMailchimpリストにしようとしています。私はリストの名前とIDを取得するためにこれが正しく働いている。しかし、私はリストの作成のための401 Unauthorized - API Key Missing応答を得ています。私の投稿要求は不正な形式だと思うが、どこが間違っているのか分かりにくい。私のコードは次のようになります。Mailchimp API v3 create list RESTクライアントRuby

params_hash = { 
    name: "#{territory}", 
    contact: { 
    company: "Company", 
    address1: "Address", 
    city: "City", 
    state: "State", 
    zip: "0000", 
    country: "US" 
    }, 
    permission_reminder: "You are receiving this email because....", 
    campaign_defaults: { 
    from_name: "From Name", 
    from_email: "[email protected]", 
    subject: "Subject", 
    language: "en" 
    }, 
    notify_on_subscribe: "[email protected]", 
    notify_on_unsubscribe: "[email protected]", 
    email_type_option: true, 
    apikey: mailchimp_key 
} 

RestClient.post("#{mailchimp_url}/lists", { params: params_hash }) { |response, request, result, &block| 

} 

答えて

1

あなたは代わりに、あなたがHTTP Basic Authenticationを使用する必要があり、ペイロードにあなたのAPIキーを渡すべきではありません。 RestClient をサポートしていますが、これはややこしいことです。 RestClientショートカットを使用する場合は、URLを変更して、次のようにユーザー名/パスワードを含めることができます。https://username:[email protected] - MailChimpにはユーザー名は関係ありませんが、Basic Authには必要です。

RestClient::Request.execute(method: :post, url: "#{mailchimp_url}/lists", payload: params_hash, user: 'anything', password: mailchimp_key) 

しかし、正直:

代わりに、あなたの代わりにこのようなあなたの要求に何かを作り、直接RestClientのRequest classを使用することができますか? RestClientはあまり良くありません。応答のための

HTTParty.post("#{mailchimp_url}/lists", body: params_hash, basic_auth: {username: 'whatever', password: mailchimp_key}) 
+0

ありがとう:私はあなたのために設定され、デフォルトの多くと非常に軽量なラッパーを作成し、OR RestClientようにそれを使用することができますが、より親しみやすいAPIでおり、HTTPartyを好みます。私はRestClientが厄介であることに同意します。しかし、私は何かにユーザー名を設定するのが奇妙だと思う - それはプロジェクトに取り組んでいる他の開発者にとって混乱を招くかもしれない。 'Restricted.post("#{mailchimp_url}/lists "、params_hash、{:Authorization =>" apikey#{mailchimp_key} "})'を使って動作させることができます。あなたはそれが間違っていると思いますか? –

+0

あなたは正しいでしょう.HTTPartyはRestClientよりはるかに優れています。助けてくれてありがとう。 –

+0

私はあなたが言っていることを見る、ええ。そのフォーマットは現在MCによってサポートされていますが、非常に慣れています。違いを生むことはまずありません。基本的な認証はカスタムヘッダーよりも読みやすいと思う傾向があります。そのようにしますが、個人的な好みです。また、私は通常、アカウントの実際のユーザー名にユーザー名を設定しますが、それは要件ではなくちょうど私の習慣です。 – TooMuchPete

関連する問題