2014年10月3日金曜日

AWS SNS のメッセージをcakePHPで受け取る

以前、Amazon SESのバウンスを受け取るというポストをしました。
http://shojaku.blogspot.jp/2014/04/amazon-sessnsweb.html
このときはrailsだったのですが、今回はcakePHPで。

・AmazonSESのバウンスを受け取るためにSNSを利用。SNSのトピックを作った時に、subscriptionを認証しないといけません。
認証はJSONフォーマットのデータがPOSTされてくるのですが、それをcakePHPで受け取って、DBに突っ込み、突っ込まれたデータの中に入っているURLにアクセスすると認証完了です。

$thisとか$_POSTとかリクエストハンドラーとかいろいろ試したんですけど、データが受取れなくて、最終的に受取れたのがこれ。
  function bounce_mails(){
    if($post = file_get_contents('php://input')){
      $data['BounceMail']['body'] = serialize($post);
      $this->BounceMail->create();
      $this->BounceMail->save($data);
    }
    exit;
  }