以前書いた「apns-php のログ出力をオフにする」の続編というか姉妹編というか。
iOS デバイスへのプッシュ通知サービスを構築していると、「削除(アンインストール)されちゃれったアプリへの通知ってどうなるの?」という問題に突き当たります。で、調べてみると「プッシュ通知先デバイスに当該アプリがインストールされていない状態の場合は、通信エラーが記録されてフィードバックサービスでエラー情報を取得可能となる」とのこと。じゃぁ、そのフィードバックってどうやったら取得できるのか、ですが、これは apns-php に同梱されている ApnsPHP_Feedback クラスを使うとチョー簡単。結構重宝する機能ですが、意外に日本語情報が出回ってないようなのでコードサンプルを。
使い方は至ってシンプル。こんな感じです。
$fb = new ApnsPHP_Feedback( ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, <証明書ファイルのパス> ); $fb->setRootCertificationAuthority(<ルート証明書ファイルのパス>); $fb->connect(); $results = $fb->receive(); forech ( $results as $result ) { // $result['deviceToken'] がエラーが発生したデバイストークンなので、 // 必要に応じてこの端末についての処理(登録ユーザから抹消する等)を行う }
うーむ、面倒くさい APNS とのやりとりをこんなにカンタンにしてくれる apns-php にもう一度大きな拍手を!!