如何使用单个 AWS 简单通知服务 ARN 来定位 APN 和 FCM

Posted

技术标签:

【中文标题】如何使用单个 AWS 简单通知服务 ARN 来定位 APN 和 FCM【英文标题】:How do i target APN and FCM with a single AWS Simple Notifiction Service ARN 【发布时间】:2021-04-23 15:31:18 【问题描述】:

尝试将 AWS SNS 推送通知集成到移动应用程序(iosandroid),但我不清楚如何实现这一点。

根据AWS guide,第一步是创建一个平台应用程序端点,可以是AppleFCMBaidu ...没有任何选项可以选择多个目标平台。

在完成所有步骤后,我观察到 FCM 平台的 SNS ARN 如下所示:

arn:aws:sns:us-west-2:8xxxxxxx:endpoint/GCM/app_name/

问题是

它仅在给定设备令牌时仅将发布的通知转发到 android 设备。

如果我对 APN 采用相同的方法,我将获得另一个适用于 ios 的 SNS ARN,它看起来资源不足,并且会导致向两个平台发送推送通知的冗余代码,以及设备端点的重复数据,我会必须为单个设备的 ios 和 android 创建设备端点

如何使用 AWS Simple Notification Service 向 android 和 ios 应用程序发布推送通知?

【问题讨论】:

【参考方案1】:

注册的每个单独设备都将获得自己的 SNS 端点 ARN。当您调用 SNS Publish API 时,Android 和 iOS 设备也需要将different payloads 发送给它们。

许多系统都希望通过 ID 查找用户,并向他们的设备发送消息。一个常见的模式是创建一个 DynamoDB 表来跟踪一些信息:

    SNS 端点 ARN 设备类型 与拥有设备的用户关联的 ID

在您的 iOS 和 Android 设备成功向 SNS 注册其设备令牌后,您应该安排将此信息存储在您的数据库中。

【讨论】:

以上是关于如何使用单个 AWS 简单通知服务 ARN 来定位 APN 和 FCM的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Device Farm CLI 上的设备池中添加单个设备?

如何使用 Amazon 资源名称 (ARN) 作为标识符来查找亚马逊资源?

无服务器调用错误:“无权执行:dynamodb:BatchWriteItem on resource:arn:aws:...”

使用 Laravel 的 AWS SNS 推送通知

在 AWS SNS(简单通知服务)电子邮件通知中发送 html 内容

如何使用适用于 Python 的 AWS CDK 通过 ARN 查找现有的经典负载均衡器 (CLB)?