タグ別アーカイブ: AWS

PHPでiOSにPush通知するためにAmazon SNS Mobile Push APIを使ってみた

はじめに


今まで使っていたライブラリが環境依存で使えなかったので、最近出たAmazon SNS を使ったモバイルデバイスへのプッシュ通知を実装してみることにしました。

使用したAWS SDK for PHP2のバージョンは2.4.3です。このバージョン以上でないとプッシュ通知のAPIが実装されていないと思います。

AWS SDK for PHP2 を使ってPushする方法


実はPHPとJavaのサンプルが公式ブログで紹介されています。 http://aws.typepad.com/aws/2013/08/push-notifications-to-mobile-devices-using-amazon-sns.html

ただしこちらのサンプルはAmazonプラットフォーム向けなんですね。

自分はiOSのプッシュ通知を実装したかったのでドキュメントを読みつつ実装しました。 違いは上記コードの

に渡すパラメータです。最終的には以下のようになりました。

ハマったポイントは以下の2つでした。

  • iOSでbadgeなどのパラメータを送る際には’MessageStructure’に’json’の指定が必要
  • ‘Message’の値とさらにその中の’APNS’(ここでは’APNS_SANDBOX’)にもjson_encodeが必要

ここに気づかずJSONのままのメッセージを送ったり、バッジやサウンドを指定できずにいました。 APIを使うとはいえ各プラットフォームごとに送るフォーマットは微妙に違うので注意が必要ですね。

というわけで、Amazon SNS を使ったモバイルデバイスへのプッシュ通知を実装することができました。

参考サイト

Using Amazon SNS Mobile Push APIs – Amazon Simple Notification Service

http://docs.aws.amazon.com/sns/latest/dg/mobile-push-api.html

Amazon Simple Notification Service — AWS SDK for PHP 2.4.4 documentation(今は2.4.4が最新になっているようです)

http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-sns.html