使用Amazon SNS服务发送推送通知

我们正在开发一个发送推送通知的移动应用程序,我们希望使用Amazon SNS服务来完成,我想确认我们计划如何pipe理设备注册和推送通知发送的总体思路。

据我所知,

在Amazon SNS中有PlatformApplication的概念,我们指定它是Android / iPhone还是环境(Test / Prod,…)

然后,PlatformEndPoint的概念是“设备和移动应用程序”,所以我想像下载和安装应用程序的每个人都需要在适当的平台上创build一个EndPoint,这取决于设备的types(android,苹果)

我的问题是,何时应该创buildPlatformEndPoint,每次login到应用程序,我们应该删除它每次他退出?

然后当PlatformEndPoint被创build,我需要发送推送通知给特定的用户(不是每个人),我将使用Publish API与适当的TargetArn参数。

非常感谢您的意见和build议

首先 ,您需要通过SNS仪表板(或使用SDK)手动创build应用程序端点。

这里是您可以为Apple(APNS-Sandbox)声明testing环境的地方。 其他环境没有专门的testing环境。 (即Google),但是鼓励您创buildtesting和生产应用程序,即使它们将使用相同的消息传送提供程序。

你可能最终有:

  1. 使用APNS-Sandbox的“苹果分段”
  2. “APNS生产苹果”

注意:您可以细化特定设备types的端点。 “iPhone升级”和/或“iPad升级”等

第二 :一旦拥有应用程序端点,就需要在系统中拥有根据系统环境知道要打哪个端点的代码。 即开发和分期可能指向“苹果分期”端点。 生产可能指向“苹果生产”。

第三 :无论何时用户接受推送通知对话框,您都必须创build用户的端点,而该端点又与应用程序端点相关。

  1. 用户对PN说是
  2. 您的服务器收到手机从APNS,GMS等获得的令牌
  3. 您的服务器依次使用Amazon的sdk将创build端点。
  4. 而已。

Last当你想发送推送通知时,你需要获取用户的arn(或者端点),并使用Amazon sdk中的publish方法。

error handling

如果推送通知未成功发送,则用户的terminal会自动禁用。 您需要决定如何处理以备将来的通知。 您可以利用Amazon SQS来处理这个问题,并且error handling的实现可能会有所不同。