我正在从自定义推送通知迁移到 AWS SNS。我做了以下工作。
- 已配置的 AWS SNS 主题
- 创建的平台应用程序
- 已创建端点
- 将端点连接到平台应用程序
我正在尝试使用适用于 Ruby 的"发布"API 推送通知的最后一步。 我收到message_id作为响应。它还记录为成功/在CloudWatch中交付。但设备中未收到推送。
设备有效设备具有有效的推送令牌设备已安装应用程序。
我尝试过的消息格式如下
{"GCM"=>{"data"=>"{"message":"message","url":"url"}"}, :default=>"default"}
SNS 发布 API 语法
client.publish({target_arn: endpoint_arn, message: message.to_json, subject: "SNS test", message_structure: :json})
仅供参考,在将其标记为任何其他问题的副本之前,请注意,我已经参考了所有以前的答案,没有任何帮助。 因此,我正在提出一个新的。
GCM 有效负载格式已更新。这对我有用。
{
"GCM": "{ "notification": { "body": "hello....", "title": "title123" } }"
}
我的消息形成有问题。我通过使用安卓调试想通了.推送到达设备,但不是预期的格式。因此,推送未显示在设备中。我正在发送
{"GCM"=>{"data"=>"{"message":"message","url":"url"}"}, :default=>"default"}
但是Android系统期待我的消息中的"徽章"和其他一些键。我试过
{:default=>"default", :GCM=>"{"data":{"message":"test","url":"https://s3.amazonaws.com/mcds_fulltext/aapg/gsaapgbull/issues/74/android_hdpi/cover_74.gif","registration_ids":"arn:aws:sns:us-****-1:*********7:endpoint/GCM/gs*****_gcm/*********************","badge":"10","vol":"128","issue":"10","journal_name":"gsaapg","abbr":"aapg"},"collapse_key":"New Article badge"}"}
现在它按预期工作。
此特定 JSON 可能并不适合所有人。但此问题的原因是消息 JSON 不符合移动应用程序的预期格式。这对于面临类似问题的人可能会有所帮助。