【问题标题】:AWS Mobile Push Notification by ExampleAWS 移动推送通知示例
【发布时间】:2018-08-01 04:56:35
【问题描述】:

我想了解AWS Mobile Push Notification 的工作原理。具体来说,我正在构建一个 Web 服务,该服务能够向在我的用户设备上运行的移动应用程序发送通知。在阅读了他们所有的文档之后,它听起来就像高级流程是:

  • 配置
    • 我需要进入我各自的推送通知服务(适用于 Android 的 GCM 和适用于 iOS 的 APNS)并配置它们以获取我配置后端服务用于在运行时连接到它们的凭据
    • 我需要登录 AWS SNS 控制台并生成一个平台应用程序 ARN (PlatformApplicationARN),我还配置我的后端以使用它
  • 代码流(运行时)
    1. 当新用户首次注册时,或者任何时候现有用户在新设备上登录时,我都会让应用程序向我的服务发送他们的设备信息。此设备信息的一个关键部分是它们的设备令牌(在 AWS 文档中也称为“注册 ID”)。此令牌由他们的操作系统生成,并在他们各自的推送通知服务中唯一标识他们的设备(对我来说也是 GCM 或 APNS)
    2. 当我的服务收到此新设备信息时,我会保存它,并且我还使用设备令牌访问 AWS SNS API(连同我配置的PlatformApplicationARN)为该特定设备生成唯一的EndpointARN
    3. 现在,每当我的后端决定需要向该用户发送通知时,我都可以查找与该用户关联的所有设备(我之前存储在我的数据库中),并获取每个设备的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


    【解决方案1】:

    我可以确认高层流程是:

    1. 登录 AWS SNS 并创建 2 个不同的平台应用程序,一个用于 Android(FCM - Firebase 云消息传递),另一个用于 iOS(APNS - Apple 推送通知服务)
    2. 对于每个平台应用程序,您将获得一个PlatformApplicationArn,并且您将被要求提供凭据,以便 SNS 可以连接到您各自的 FCM/APNS 帐户
      • 对于 FCM,您只需要服务器 API 密钥(可从 Firebase Cloud Manager 获得)
      • 对于 APNS,您将需要通过 Mac 上的 Key Chain Access 工具创建证书,这一过程非常费时费力,这并不好玩...
    3. 将这 2 个PlaformApplicationArns 添加到您的代码配置中
    4. 当用户向您的应用注册新设备时,他们会向您发送一个设备令牌(由 FCM 或 APNS 提供),用于向 FCM/APNS 唯一标识他们
    5. 获取此设备令牌,结合您的用于 FCM 或 APNS 的 PlatformApplicationArn,并使用 AWS SNS 开发工具包为设备创建一个 EndpointArn。随心所欲地存储这个EndpointArn
    6. 现在,您可以随时使用 AWS SNS 开发工具包将消息推送到您的 EndpointArn(特定设备)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 2012-04-22
      相关资源
      最近更新 更多