AWS SNS - 推送 GCM,显示为从 Cloudwatch 发送,但在移动设备中未收到



我正在从自定义推送通知迁移到 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 不符合移动应用程序的预期格式。这对于面临类似问题的人可能会有所帮助。

最新更新