Amazon SNS での Firebase Cloud Messaging (FCM) モバイルプッシュ通知の失敗をトラブルシューティングするにはどうすればよいですか?

最終更新日: 2021 年 10 月 6 日

Firebase Cloud Messaging (FCM) モバイルプッシュ通知が Amazon Simple Notification Service (Amazon SNS) を介して送信できません。この問題をトラブルシューティングするにはどうすればよいですか?

解決方法

Amazon CloudWatch Logs のプッシュ通知配信ステータス属性を設定および表示する

FCM から直接通知を受信できるかどうかを確認する

問題が Amazon SNS エンドポイント側にあるかクライアントアプリケーション側にあるかを確認するには、FCM コンソールでテストメッセージを送信します。手順については、FCM のドキュメントの通知メッセージの送信 (iOS 向け) またはテスト通知メッセージを送信する (Android 向け) を参照してください。

テスト通知を送信すると、FCM コンソールにテスト通知の結果を示すパネルが表示されます。通知が届かない場合は、この記事の正しい FCM メッセージタイプを使用していることを確認するのセクションの手順に従ってください。

プッシュ通知を受信していないデバイスに関連付けられているプラットフォームエンドポイントがアクティブ化されているかどうかを確認する

1.    プッシュ通知の配信に失敗した場合の配信ステータスログを確認します ("status": "FAILURE")。

2.    失敗したプッシュ通知配信ログで、"providerResponse": "Endpoint is disabled" の値を確認します。失敗した配信ログにこの値が表示された場合、プッシュ通知を受信していないデバイスに関連付けられているプラットフォームエンドポイントは非アクティブ化されています。

3.    プラットフォームエンドポイントが非アクティブ化されている場合は、SetEndpointAttributes API アクションを実行して再アクティブ化します。SetEndpointAttributes API アクションを実行すると、エンドポイントが最新の有効なデバイストークンに関連付けられます。

注: 詳細については、Creating a platform endpointTroubleshooting セクションRe-enabling a platform endpoint associated with an invalid device token を参照してください。

失敗した FCM プッシュ通知配信 CloudWatch ログイベントの例

{
  "notification": {
    "messageMD5Sum": "c8c339cf07dc39c9388253dgc81f257",
    "messageId": "fg207f98-0244-6767-96e2-45b1fg451gg8",
    "timestamp": "2021-05-25 22:27:51.889"
  },
  "delivery": {
    "deliveryId": "76ab7dcd-f444-5b4f-9d1b-24ea8863d9bc",
    "destination": "arn:aws:sns:us-east-1:123456789101:endpoint/GCM/MyAndroidApp/682dc992-a47f-45f7-b980-97727cce0a9c",
    "providerResponse": "Endpoint is disabled",
    "dwellTimeMs": 28,
    "attempts": 1,
    "token": "ojnco9nc9weucn9encx9ewunc9nu9w9euncec9necn9xexnexex9encewcerve0f0o0dmco9j",
    "statusCode": 400
  },
  "status": "FAILURE"
}

正しい FCM メッセージタイプを使用していることを確認する

注: FCM では、通知メッセージとデータメッセージといった 2 種類のメッセージがサポートされています。通知メッセージは FCM SDK によって自動的に処理されます。データメッセージはクライアントアプリケーションによって処理されます。詳細については、FCM ドキュメントのメッセージのタイプおよび Amazon SNS デベロッパーガイドの Sending platform-specific messages を参照してください。

クライアントアプリケーションでメッセージデータを処理する場合

データメッセージを使用していることを確認します。詳細については、FCM ドキュメントのデータメッセージを参照してください。

FCM SDK でクライアントアプリケーションに代わって通知の表示を処理する場合

通知メッセージを使用していることを確認します。詳細については、FCM ドキュメントの通知メッセージを参照してください。

FCM エラー応答コードを特定およびトラブルシューティングする

1.    プッシュ通知の配信に失敗した場合の配信ステータスログを確認します ("status": "FAILURE")。

2.    失敗したプッシュ通知配信ログで、他のプラットフォームの応答コードがないか確認します。その後、FCM ドキュメントのダウンストリームメッセージのエラーレスポンスコードのセクションにあるそのコードについて記載されている推奨される対処方法に従います。

注: FCM エラーコードとトラブルシューティングのベストプラクティスの詳細については、FCM ドキュメントの ErrorCode を参照してください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?