如何通过 AWS Step Functions 和 AWS SNS 发布到 android



我正在尝试通过AWS Step Functions和AWS SNS推送到Android手机。

我能够在调试控制台中看到通知,但它没有出现。如何正确设置邮件格式?我尝试了几种组合,但没有一种奏效。

"Publish notification": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"Message": {
"default": "TestTestTest",
"GCM": {
"data": {
"message": "Sample message for Android endpoints"
}
},
"Input": "Hello from Step Functions!"
},
"MessageStructure": "json",
"TargetArn": "arn:aws:sns:eu-central-1:xxxxxxxxx:endpoint/GCM/android/xxxxxxxxxxxxx"
},
"Next": "next state"
}

如果直接通过SNS发送,则通知会在手机上正确显示:

"GCM": "{ "data": { "message": "Sample message for Android endpoints" } }"

我还尝试了步骤函数编辑器中的代码示例:

"Message": {
"Input": "Hello from Step Functions!"
}

当涉及到FCM推送通知时,支持两种类型的消息类型,即"数据"或"通知"。

查看您的消息有效负载,我看到您正在使用"data">类型的消息。这意味着:

"数据">消息不会由 FCM SDK 自动处理,也不会自动传递到通知中心,因此客户端需要处理此类消息。

分辨率:

您将需要使用通知类型的消息有效负载,因为您希望推送通知显示在最终用户设备上。请参阅我编写的示例状态机定义:

{
"StartAt": "Publish to SNS",
"States": {
"Publish to SNS": {
"Type": "Task",
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"TargetArn": "arn:aws:sns:us-east-1:xxxxxxx:endpoint/GCM/AWSNS-Android/xxxxx-xxxxxxx-xxxxxxx",
"MessageStructure": "json",
"Message": {"GCM": "{ "notification": { "body": "sample test push" } }"}
},
"End": true
}
}
}

希望这有帮助!

最新更新