我正在从自定义推送通知迁移到AWS SNS。我做了以下。
我正在尝试使用'发布'来推送通知的最后一步Ruby的API。我收到message_id作为回复。它还会在CloudWatch中记录成功/交付。但是设备中没有收到Push。
该设备有效 该设备具有有效的推送令牌 设备已安装应用程序。
我尝试过的区域的消息格式如下
{"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})
仅供参考,在将此标记为任何其他问题的副本之前,请注意我已提及所有先前的答案,并没有帮助我。因此我正在筹集一个新的。
答案 0 :(得分:1)
GCM有效载荷格式已更新。 这对我有用。
{
"GCM": "{ \"notification\": { \"body\": \"hello....\", \"title\": \"title123\" } }"
}
答案 1 :(得分:0)
我的邮件形成存在问题。我通过调试android来解决它。 Push到达了设备,但它没有达到预期的格式。因此推送未在设备中显示。我正在发送
{"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不是移动应用程序的预期格式。这可能对面临类似问题的人有所帮助。