翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
デバイストークンの管理と維持
以下の手順に従って、モバイルアプリケーションのプッシュ通知の配信可能性を確保できます。
-
すべてのデバイストークン、対応する Amazon SNS エンドポイントの ARN、タイムスタンプを、アプリケーションサーバーに保存します。
-
すべての古いトークンを削除し、対応する Amazon SNS エンドポイント ARN を削除します。
アプリの初回起動時に、デバイスのデバイストークン (登録トークンとも呼ばれます) を受け取ります。このデバイストークンは、デバイスのオペレーティングシステムによって作成され、FCM アプリケーションに関連付けられています。このデバイストークンを受け取ったら、プラットフォームエンドポイントとして Amazon SNS に登録できます。デバイストークン、Amazon SNS プラットフォームエンドポイント ARN、タイムスタンプを、アプリケーションサーバーまたは別の永続ストアに保存することをお勧めします。FCM アプリケーションをセットアップし、デバイストークンを取得して保存するには、Google の Firebase ドキュメントの登録トークンの取得と保存
最新のトークンを維持することが重要です。ユーザーのデバイストークンは、次の場合に変更される可能性があります。
-
モバイルアプリケーションが、新しいデバイスで復元されます。
-
ユーザーにより、アプリケーションがアンインストールまたは更新されます。
-
ユーザーが、アプリケーションデータを消去します。
デバイストークンが変更された場合、対応する Amazon SNS エンドポイントを新しいトークンで更新することをお勧めします。これにより、Amazon SNS は登録デバイスとの通信を継続できます。これを行うには、モバイルアプリケーションに次の擬似コードを実装します。有効なプラットフォームエンドポイントを作成および維持するための推奨プラクティスについて説明します。このアプローチは、モバイルアプリケーションが開始されるたびに実行することも、バックグラウンドでスケジュールされたジョブとして実行することもできます。
擬似コード
次の FCM 擬似コードを使用して、デバイストークンを管理および維持します。
retrieve the latest token from the mobile OS
if (endpoint arn not stored)
# first time registration
call CreatePlatformEndpoint
store returned endpoint arn
endif
call GetEndpointAttributes on the endpoint arn
if (getting attributes encountered NotFound exception)
#endpoint was deleted
call CreatePlatformEndpoint
store returned endpoint arn
else
if (token in endpoint does not match latest) or
(GetEndpointAttributes shows endpoint as disabled)
call SetEndpointAttributes to set the
latest token and enable the endpoint
endif
endif
トークンの更新要件の詳細については、Google の Firebase ドキュメントの「定期的なトークンの更新
無効なトークンの検出
無効なデバイストークンを使用してメッセージが FCM v1 エンドポイントに配信されると、Amazon SNS は次の例外のいずれかを受け取ります。
-
UNREGISTERED
(HTTP 404) – Amazon SNS がこの例外を受信すると、InvalidPlatformToken
のFailureType
を含む配信失敗イベント、および「エンドポイントに関連付けられたプラットフォームトークンが有効ではありません」というFailureMessage
を受け取ります。Amazon SNS は、この例外で配信が失敗すると、プラットフォームエンドポイントを無効にします。 -
INVALID_ARGUMENT
(HTTP 400) – Amazon SNS がこの例外を受信すると、デバイストークンまたはメッセージペイロードが無効であることを意味します。詳細については、Google の Firebase ドキュメントの「ErrorCode」を参照してください。
INVALID_ARGUMENT
はこれらのいずれの場合でも返される可能性があるため、Amazon SNS は InvalidNotification
の FailureType
、および「通知本文が無効です」という FailureMessage
を返します。このエラーが表示されたら、ペイロードが正しいことを確認します。ペイロードが正しい場合は、デバイストークンが最新であることを確認します。この例外で配信が失敗しても、Amazon SNS はプラットフォームエンドポイントを無効にしません。
InvalidPlatformToken
配信失敗イベントが発生するもう 1 つのケースは、登録されたデバイストークンが、そのメッセージを送信しようとするアプリケーションにない場合です。この場合、Google は SENDER_ID_MISMATCH エラーを返します。Amazon SNS は、この例外で配信が失敗すると、プラットフォームエンドポイントを無効にします。
FCM v1 API から受信したすべての観測されたエラーコードは、アプリケーションの配信ステータスログを設定するときに、CloudWatch で利用できます。
アプリケーションの配信イベントを受け取るには、「使用可能なアプリケーションイベント」を参照してください。
古いトークンの削除
エンドポイントデバイスへのメッセージ配信が失敗すると、トークンは古いとみなされます。Amazon SNS は、これらの古いトークンをプラットフォームアプリケーションの無効なエンドポイントとして設定します。無効になったエンドポイントに発行すると、Amazon SNS は EventDeliveryFailure
イベントと EndpointDisabled
の FailureType
、および「 エンドポイントが無効です」という FailureMessage
を返します。アプリケーションの配信イベントを受け取るには、「使用可能なアプリケーションイベント」を参照してください。
Amazon SNS からこのエラーを受け取った場合、プラットフォームアプリケーションで古いトークンを削除または更新する必要があります。