【发布时间】:2018-08-01 04:56:35
【问题描述】:
我想了解AWS Mobile Push Notification 的工作原理。具体来说,我正在构建一个 Web 服务,该服务能够向在我的用户设备上运行的移动应用程序发送通知。在阅读了他们所有的文档之后,它听起来就像高级流程是:
- 配置
- 我需要进入我各自的推送通知服务(适用于 Android 的 GCM 和适用于 iOS 的 APNS)并配置它们以获取我配置后端服务用于在运行时连接到它们的凭据
- 我需要登录 AWS SNS 控制台并生成一个平台应用程序 ARN (
PlatformApplicationARN),我还配置我的后端以使用它
- 代码流(运行时)
- 当新用户首次注册时,或者任何时候现有用户在新设备上登录时,我都会让应用程序向我的服务发送他们的设备信息。此设备信息的一个关键部分是它们的设备令牌(在 AWS 文档中也称为“注册 ID”)。此令牌由他们的操作系统生成,并在他们各自的推送通知服务中唯一标识他们的设备(对我来说也是 GCM 或 APNS)
- 当我的服务收到此新设备信息时,我会保存它,并且我还使用设备令牌访问 AWS SNS API(连同我配置的
PlatformApplicationARN)为该特定设备生成唯一的EndpointARN - 现在,每当我的后端决定需要向该用户发送通知时,我都可以查找与该用户关联的所有设备(我之前存储在我的数据库中),并获取每个设备的
EndpointARN。然后只需点击 AWS SNS API 将我的通知消息发送到EndpointARN,它听起来就像 AWS SNS 会处理其他所有事情(并将实际消息传递到设备)
所以在我继续之前,我只是想找人来帮助我检查我的理解,并在我误解任何内容或遗漏配置/流程的任何重要部分时提供任何课程更正! 假设我或多或少走上了正轨……
在我向EndpointARN 发送通知消息后,我仍然看不到 SNS 将如何连接到 GCM 和 APNS。他们是否保持自己与这些服务的集成/连接?或者我是否以某种方式将自己的 GCM/APNS 凭证注入到 AWS SNS API 调用中?
另外,我知道推送通知是相当可配置的,允许您执行以下操作:
- 确定设备在收到通知时应该播放什么声音
- 确定在收到通知时打开/关闭什么颜色的 LED(在我的 Android 手机上,不同的应用程序会导致绿色、蓝色甚至紫色 LED 闪烁!)
- 判断Android/iOS操作系统本身是否收到通知(在这种情况下,如果我离开手机几分钟后回到手机,我可以按任意按钮并查看高级列表摘要我收到的任何新通知); 或通知是否纯粹是“应用内”通知,在这种情况下,只有当我真正打开我的应用时,我才会看到我收到了通知。
我想知道所有这些配置发生在哪里?有什么想法吗?
【问题讨论】:
标签: amazon-web-services push-notification google-cloud-messaging apple-push-notifications amazon-sns