gpt4 book ai didi

android - 使用 aws-ruby-sdk 通过 AWS SNS 向多个平台发送消息

转载 作者:可可西里 更新时间:2023-11-01 04:41:37 25 4
gpt4 key购买 nike

我正在尝试使用亚马逊的 Ruby SDK 为不同平台发送带有附加属性的推送通知,即 APNS 和 GCM(Apple 和 Android 设备),但我找不到使用 SDK 发送记录的消息结构的方法API。

要为 GCM 和 APNS 发送具有不同负载的消息,我找到的文档建议采用以下结构:

{
"APNS": {
"aps": {
"alert": "someone set us up the bomb"
}
},
"GCM": {
"data": {
"message": "we get signal"
}
}
}

我希望 SNS 能够正确地将特定于平台的有效负载发送到正确的平台端点,但是发送到 Android 设备等的消息还包括 APNS 有效负载 - 它包括完整的消息正文。

这是我发送消息的方式:

sns = AWS::SNS::Client.new
sns.publish(
target_arn: endpoint_arn,
message: {
GCM: ...,
APNS: ...
}.to_json
)

可用的文档,尤其是 ruby​​ sdk 的文档,似乎并没有那么详细。我假设有效负载应该根据端点平台正确分配,我的假设是错误的吗?有没有更好的方法来实现我想要做的事情?

最佳答案

您可能已经明白了这一点,但下面是它在 PHP 上的工作原理。可能消息结构与 Ruby 中的相同:

publish(array(
'TopicArn' => 'YOUR_TOPIC_ARN',
'Message' => '{
"default": "YOUR_MESSAGE",
"email": "YOUR_MESSAGE",
"sqs": "YOUR_MESSAGE",
"http": "YOUR_MESSAGE",
"https": "YOUR_MESSAGE",
"sms": "YOUR_MESSAGE",
"APNS": "{\"aps\":{\"alert\": \"YOUR_MESSAGE\",\"sound\":\"default\", \"badge\":\"1\"} }",
"GCM": "{ \"data\": { \"message\": \"YOUR_MESSAGE\" } }",
"ADM": "{ \"data\": { \"message\": \"YOUR_MESSAGE\" } }"
}',
'MessageStructure' => 'json'
));

关于android - 使用 aws-ruby-sdk 通过 AWS SNS 向多个平台发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com