2016-04-12 15 views
2

私はMailChimpを使用してメールを送信するためにnodejsにアプリケーションを作成しています。私はhttps://apidocs.mailchimp.com/sts/1.0/sendemail.func.phpを使用しようとしましたが、1.0がもはや機能しないように見えるので、3.0 apiを使用するように変更しました(大きな驚き)。 I私は401応答を取得しておくセットアップMailChimp APIを使用してメールを送信する方法

var apiKey = '<<apiKey>>', 
     toEmail = '<<emailAddress>>', 
     toNames = '<<myName>>', 
     message = { 
      'html': 'Yo, this is the <b>html</b> portion', 
      'text': 'Yo, this is the *text* portion', 
      'subject': 'This is the subject', 
      'from_name': 'Me!', 
      'from_email': '', 
      'to_email': toEmail, 
      'to_name': toNames 
     }, 
     tags = ['HelloWorld'], 
     params = { 
      'apikey': apiKey, 
      'message': message, 
      'track_opens': true, 
      'track_clicks': false, 
      'tags': tags 
     }, 
     url = 'https://us13.api.mailchimp.com/3.0/SendEmail'; 
needle.post(url, params, function(err, headers) { 
    if (err) { 
       console.error(err); 
      } 
      console.log(headers); 
    } 
}); 

と私のアプリ(私は適切にAPIキーを送信していないよので、許可されていない)

をした私は、サーバー上の制約のために針を使用する必要があります。

答えて

1

API v3.0には「SendEmail」エンドポイントはありません。 MailChimpのSTSは、Mandrillのトランザクションサービスのプリカーソルであり、既存のSTSキャンペーンを持つユーザーアカウントに対してのみ有効です。新しいSTSキャンペーンを作成することはできません。毎月の有料MailChimpアカウントをお持ちの場合は、必ずマンドリルを調べてください。そうでなければ、私は郵便配達で幸運を祈る。

+0

これは正解です。これがうまくいきましたが、私は正しく認証を設定していないことにも言及する必要があります。 @micmiaには、認証を設定する正しい方法が記載されています。 –

+0

私は新しい質問を始める前に、これがなぜ405を返すのかを考えてみましょう。 var apiKey = '<' '、 url =' https://us13.api.mailchimp.com/3.0/campaigns/ <>/actions/send '; 試み{needle.post(URL、{ユーザー名: 'anystring'、パスワード:APIKEY}、関数(ERR、ヘッダ){ IF(ERR){ console.error(ERR);} はconsole.log(ヘッダー); –

+0

Method Not Allowedは[標準HTTPエラー](http://www.checkupdown.com/status/E405.html)です。これは、使用しているHTTPメソッド(この場合はPOST)がMailChimpはHTTPメソッドを使用して操作を区別します。作成のためのPOST、読み取りのためのGETなどです。その特定の問題を解決するには、何をしようとしているかによって異なりますが、別の方法(PATCHまたはGET)を使用するか、別のエンドポイント(/ campaigns /など)を使用してください – TooMuchPete

0

MailChimp API 3.0でHTTP基本認証を使用する必要があります。

needle.get('https://<dc>.api.mailchimp.com/3.0/<endpoint>', { username: 'anystring', password: 'your_apikey' }, 
    function(err, resp) { 
     // your code here... 
}); 

EDIT

@TooMuchPeteはSendMailエンドポイントがMailChimpのAPI v3.0のでは有効ではありません、右です。私はそれに気付かず、自分の答えを編集しました。

+0

'anystring'は特定のものである必要がありますか、文字通り任意の文字列である必要がありますか?私はこれを試しましたが、私はまだ401エラーを取得しています。 –

+0

これで修正されました。ユーザー名に誤字がありました。 –

+0

これは認証に関しては真ですが、SendEmailは有効なAPI v3エンドポイントではないことに注意してください。 – TooMuchPete

関連する問題