我们正在开发一个发送推送通知的移动应用程序,我们希望使用 Amazon SNS 服务来实现,我想确认一下我们计划如何管理设备注册和推送通知发送的总体思路。
据我所知:
在 Amazon SNS 中有 PlatformApplication 的概念,我们指定它是否是 Android/iPhone 以及环境(测试/生产,...)
然后,有“用于设备和移动应用程序”的 PlatformEndPoint 的概念,因此,我想对于每个下载并安装应用程序的人来说,有必要根据设备的类型在适当的平台上创建一个 EndPoint (安卓,苹果)
我的问题是,当这个 PlatformEndPoint 应该被创建时,每次这个人登录到应用程序时,我们应该在他每次注销时删除它?
然后,当创建 PlatformEndPoint 并且我需要向特定用户(不是所有人)发送推送通知时,我将使用带有适当 TargetArn 参数的 Publish API。
非常感谢您的意见和建议
Best Answer-推荐答案 strong>
首先您需要通过 SNS 仪表板(或使用 SDK)手动创建应用程序端点。
您可以在此处为 Apple (APNS-Sandbox) 声明一个测试环境。其他环境没有专门的测试环境。 (即 Google),但我们鼓励您创建测试和生产应用程序,即使它们将使用相同的消息传递提供程序。
你最终可能会:
- 使用 APNS-Sandbox 进行“Apple-staging”
- 使用 APNS 的“Apple 制作”
Note: you can refine your endpoints for specific device type. "iPhone-staging" and/or "iPad-staging" etc.
第二:
拥有应用程序端点后,您需要在系统中添加代码,以根据系统环境知道要命中哪个端点。即开发和登台可能指向“Apple-staging”端点。 Production 可以指向“Apple-production”。
第三:
每当用户接受推送通知对话框时,您必须创建用户的端点,该端点又与应用程序端点相关。
- 用户同意 P.N.
- 您的服务器接收手机从 APNS、GMS 等获取的 token 。
- 反过来,您的服务器将使用 Amazon 的 sdk 创建端点。
- 就是这样。
最后
当您想要发送推送通知时,您需要获取用户的 arn(或端点)并使用 Amazon sdk 中的 publish 方法。
错误处理
如果推送通知未成功发送,用户的端点会自动禁用。您需要决定如何处理它们以接收 future 的通知。您可以利用 Amazon SQS 解决这个问题,错误处理的实现可能会有所不同。
关于android - 使用 Amazon SNS 服务发送推送通知,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26754885/
|