选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Amazon SNS 管理 Firebase Cloud Messaging 端点

聚焦模式
Amazon SNS 管理 Firebase Cloud Messaging 端点 - Amazon Simple Notification Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理和维护设备令牌

您可以按照以下步骤确保移动应用程序的推送通知的可送达性:

  1. 将所有设备令牌、相应的 Amazon SNS 终端节点 ARNs和时间戳存储在您的应用程序服务器上。

  2. 移除所有陈旧的令牌并删除相应的 Amazon SNS ARNs 终端节点。

应用程序首次启动后,您将收到该设备的设备令牌(也称为注册令牌)。此设备令牌由设备的操作系统创建,并与您的 FCM 应用程序相关联。收到此设备令牌后,您可以将其作为平台端点注册到 Amazon SNS。我们建议您存储设备令牌、Amazon SNS 平台端点 ARN 和时间戳,方法是将它们保存到您的应用程序服务器或其他永久存储中。要设置 FCM 应用以检索和存储设备令牌,请参阅 Google 的 Firebase 文档中的检索和存储注册令牌

维护 up-to-date代币很重要。如果满足以下条件,用户的设备令牌可以更改:

  1. 移动应用程序将在新设备上恢复。

  2. 用户卸载或更新应用程序。

  3. 用户清除应用程序数据。

当您的设备令牌发生变化时,我们建议您使用新令牌更新相应的 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 收到此异常时,您将收到一个传输失败事件,该事件的 FailureTypeInvalidPlatformToken,且 FailureMessage与端点关联的平台令牌无效。当传送失败时,Amazon SNS 将禁用您的平台端点,但有此例外情况。

  • INVALID_ARGUMENT(HTTP 400)– 当 Amazon SNS 收到此异常时,这意味着设备令牌或消息有效载荷无效。有关更多信息,请参阅ErrorCode谷歌的 Firebase 文档。

由于在这两种情况下都可以返回 INVALID_ARGUMENT,因此 Amazon SNS 将返回 InvalidNotification FailureType 以及通知正文无效 FailureMessage。当您收到此错误时,请验证您的有效载荷是否正确。如果正确,请验证设备令牌是否正确 up-to-date。当传送失败时,Amazon SNS 不会禁用您的平台端点,但有此例外情况。

您会遇到 InvalidPlatformToken 传送失败事件的另一种情况是,注册的设备令牌不属于尝试发送该消息的应用程序。在这种情况下,Google 将返回 SENDER_ID_MISMATCH 错误。当传送失败时,Amazon SNS 将禁用您的平台端点,但有此例外情况。

当您为应用程序设置交付状态日志 CloudWatch时,可以查看从 FCM v1 API 收到的所有观察到的错误代码。

要接收应用程序的传送事件,请参阅可用应用程序事件

移除过时令牌

一旦向端点设备传送消息开始失败,令牌就会被视为过时。Amazon SNS 将这些过时令牌设置为您的平台应用程序的禁用端点。当您向已禁用的端点发布内容时,Amazon SNS 将返回一个 EventDeliveryFailure 事件,该事件的 FailureTypeEndpointDisabledFailureMessage端点处于禁用状态。要接收应用程序的传送事件,请参阅可用应用程序事件

当您收到来自 Amazon SNS 的此错误时,您需要移除或更新平台应用程序中的过时令牌。

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。