わたねこコーリング

野良プログラマ発、日々のアウトプット

apns-php で APNS のフィードバックを受け取る

以前書いた「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 にもう一度大きな拍手を!!