Mailchimp API のエラーコード

MailChimp というメール配信サービスを使っています。

なかなかの優れもので、WordPress のプラグインもあって便利です。

ところが、プラグインだと、フォームがひとつしか置けないので、新たにフォームを追加しようとすると、直接、MailChimp の API を叩く必要があります。

もちろん、MailChimp が用意してくれるフォームをそのまま使うことができるのですが、そうすると、仕様で、どうしても、「本当に登録しますか」という確認メールが飛んでしまいます。

それが嫌なら、API使えということです。

まあ、このコードはいろいろと溢れているので、必要であれば、お使いの環境にあわせたコードを探しましょう。

ただ、Mailchimp API が3.0 になっていて、エラーコードが変わっていたことで、色々と困りました。

備忘録として残しておきます。誰かの役に立つかは不明ですけど♪

とりあえず、ぼくが遭遇した問題は、すでに登録済みアドレスを登録しようとしたときです。

今までだと、エラーコードとして、214が返ってきたのですが、エラーはすべて400になりました。

仕方ないので、中身でとるしかありません。

  $response = curl_exec($curl);
  $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

  curl_close($curl);

  $result = json_decode($response,true);

とりあえず、ここまでで、データを取ってきます。curl の書き方はお使いの環境に合わせて作ってください。

そしてエラーの中身ですが、$result[‘title’] で取れました。

$httpCode に200が返ってきたときは、登録成功なので、それ以外(400)の時を次のようにしました。

  if ($result['title'] == "Member Exists"){
    $msg = 'このメールアドレスはすでに登録されています';
  } else {
    $msg = $httpCode . ': エラーが発生しました';
  }
  echo '

'. $msg .'

';

これで、登録済みの場合は、メッセージを変えることができますね!

これ以外でなんかいい方法がありましたら、教えてください♪