如何测试 sns APNS 推送通知到单个设备

Posted

技术标签:

【中文标题】如何测试 sns APNS 推送通知到单个设备【英文标题】:how to test sns APNS push notifications to a single device 【发布时间】:2017-08-29 17:15:35 【问题描述】:

如何在生产环境中验证我的 AWS SNS 凭证以用于 APNS?我需要更新凭据(公钥/私钥),因为原始证书即将到期,现在我想测试向单个设备发送推送通知,这样我就不会向每个用户发送测试推送通知的垃圾邮件。

【问题讨论】:

【参考方案1】:

首先,您需要确定要向其发送推送通知的特定设备的 SNS ARN,通常这可以通过使用 Charles Proxy 检查应用程序的网络流量来完成。查找对 sns.us-east-1.amazonaws.com 的请求,并在请求中找到 EndpointArn 属性,该属性在您的 SNS 应用程序名称之后包含一个 guid:

然后您可以使用下面的AWS CLI 命令触发推送通知,将target-arn 选项替换为上一步确定的 EndpointArn。

aws sns publish --target-arn "arn:aws:sns:us-east-1:<aws account id>:endpoint/APNS/<sns application name>/<device guid>" --message "test"

其他提示:

推送通知仅适用于通过 App Store 下载的应用(包括 Test Flight),但不适用于通过 XCode 安装的应用。 确保在应用程序名称之后包含设备 GUID,以便仅在 target-arn 参数中定位单个设备。

【讨论】:

以上是关于如何测试 sns APNS 推送通知到单个设备的主要内容,如果未能解决你的问题,请参考以下文章

sns 推送通知发布到单个设备

使用 AWS SNS 向特定 APNS 令牌发送推送通知

AWS - SNS 端点为 iOS 自行禁用 - Apple 设备(推送通知失败)

使用 SNS Payload 长度的 Apple 推送通知消息

如何使用 java 编写 APNS 反馈服务?

AWS SNS 推送通知说明