Memo

メモ > 技術 > サービス: AmazonSNS > AmazonSNS: 動作確認

■AmazonSNS: 動作確認
■端末ごとに送信(Android) Simple Notification Service → プッシュ通知 → 作成したアプリケーションの名前をクリック この画面で、「このアプリケーションにはエンドポイントがありません。」と表示されていることを確認する 作成したPHPプログラムの index.php にアクセスし、 「CreatePlatformEndpoint」で以下を入力して実行する applicationArn: arn:aws:sns:ap-northeast-1:0123456789:app/GCM/Push-Test4-FCM-Dev deviceToken: (プッシュを送信したいAndroid端末のデバイストークン) 先ほどの画面に、エンドポイントが追加されていることを確認する トークンに対応したARNが作成され、AmazonSNSでプッシュを送るときはこのARNを使用する 作成したPHPプログラムの index.php にアクセスし、 「Publish」で以下を入力して実行する message: 任意のメッセージ(日本語可)を入力 targetArn: (プッシュを送信したいAndroid端末のARN) なお、無効になったエンドポイントに送信した場合、以下のエラーが表示される これをもとに無効な送信先を削除したりはできそう これとは別に、アプリを起動するたびにデバイストークンの更新を行うと良さそう
Error executing "Publish" on "https://sns.ap-northeast-1.amazonaws.com"; AWS HTTP error: Client error: `POST https://sns.ap-northeast-1.amazonaws.com` resulted in a `400 Bad Request` response: <ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/"> <Error> <Type>Sender</Type> <Code>EndpointDis (truncated...) EndpointDisabled (client): Endpoint is disabled - <ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/"> <Error> <Type>Sender</Type> <Code>EndpointDisabled</Code> <Message>Endpoint is disabled</Message> </Error> <RequestId>2175f167-ac6a-55fe-9458-a5405b37d703</RequestId> </ErrorResponse>
■端末ごとに送信(iOS) 「CreatePlatformEndpoint」で以下を入力して実行する applicationArn: arn:aws:sns:ap-northeast-1:949004901725:app/APNS_SANDBOX/Push-Test4-APNS-Dev deviceToken: (プッシュを送信したいiOSのデバイストークン) 「Publish」で以下を入力して実行する message: 任意のメッセージ(日本語可)を入力 targetArn: (プッシュを送信したいiOSのARN) ■トピックごとに送信 Simple Notification Service → トピック → 作成したトピックの名前をクリック この画面で、エンドポイントがカラであることを確認する 作成したPHPプログラムの index.php にアクセスし、 「Subscribe」でトピックのARNと追加したい端末のARNを入力して実行する 「Publish」で以下を入力して実行する message: 任意のメッセージ(日本語可)を入力 topicArn: (プッシュを送信したいAndroid端末のARN) ※トピック内に無効なエンドポイントが含まれていても、特にエラーなどは返してくれないみたい? 要検証 ■AmazonSNSから送信(デバッグ用) Simple Notification Service → プッシュ通知 → 作成したアプリケーションの名前をクリック 送信先にチェックを入れて「メッセージの発行」をクリック メッセージ構造: すべての配信プロトコルに同一のペイロード メッセージ: AmazonSNSから直接送信 「メッセージの発行」をクリックすると送信できる また、「メッセージ構造」を「配信プロトコルごとにカスタムペイロード」にすると、 メッセージに以下のようなテキストが表示される 「Sample message for iOS development endpoints」の部分を任意のメッセージに変更して送信でき、単純なメッセージ以外も送信できるようになる
{ "APNS_SANDBOX": "{\"aps\":{\"alert\":\"Sample message for iOS development endpoints\"}}" }
Simple Notification Service → トピック 送信先にチェックを入れて「メッセージの発行」をクリック とすれば、トピックに対しても送信できる

Advertisement