我正在将自己的iOS推送服务迁移到亚马逊SNS。以前,我通过我们自己的服务器推送消息,这已经不够了。
后端是用PHP构建的,这是我如何使用旧解决方案发送推送通知的一些代码:
$body = array(
'alert' => array('body' => $id,
'action-loc-key' => 'read this',
'loc-key' => '%@',
'loc-args' => array($message)),
'badge' => '0',
'sound' => 'default',
'content-available' => '1'
);
这是我发送的通知的正文。现在,我想使用AWS PHP SDK发布方法,通过SNS发送相同的通知。
我发现我必须通过这个发送推送通知:
$result = $snsClient->publish(array(
'TargetArn' => $target,
// Message is required
'Message' => $message,
'MessageStructure' => 'json'
));
在上面的代码示例中,$message是什么?感谢所有的帮助!
编辑:我已经用下面的JSON通过SNS dashboard成功发送了pushnotification。我的问题是通过PHP SDK重现这一点。
{"APNS":{\"aps\":{\"警报\":{\"body\":\"7500\",\"action-loc-key\":\"读取此\",\"loc-key\":\"%@\", \"loc-args\":[\"消息\"]}, \"徽章\":\"0\",\"声音\":\"默认\",\"内容可用\":\"1\"} }" }
离开GrapplingCoder的答案,下面是发送基本推送通知的JSON,其中包含使用默认通知声音的文本:
{
"APNS": "{\"aps\":{\"alert\": \"This is your message text!\",\"sound\":\"default\"} }"
}
我不知道这是否适合您的目的,但在AWS SNS API仪表板中发送单个消息的格式如下:
{"APNS_SANDBOX": "{\"aps\": {\"alert\":\"HERE IS AN ALERT, BADGE, and SOUND!\",\"badge\": 1,\"sound\":\"bingbong.aiff\"}}"}
要发送到仪表板中的主题,可以使用如下字符串:
{
"default": "HERE IS AN ALERT, BADGE, and SOUND",
"APNS_SANDBOX": "{\"aps\": {\"alert\":\"HERE IS AN ALERT, BADGE, and SOUND!\",\"badge\": 1,\"sound\":\"bingbong.aiff\"}}"
}
从仪表板发送时需要转义引号。
当发送到生产时,您将APNS_SANDBOX
替换为APNS
我设法解决了这个问题!
下面的代码成功了,我之前的尝试没有创建一个好的json字符串(注意这里有两个json_encodes)或者没有必需的“默认”json键。
$message = json_encode(array(
'default' => $message,
'APNS' => json_encode(array(
'aps' => array(
'alert' => array('body' => $id,
'action-loc-key' => 'read this',
'loc-key' => '%@',
'loc-args' => array($message)),
),
'badge' => '0',
'sound' => 'default',
'content-available' => '1'
))
));
$result = $snsClient->publish(array(
'TargetArn' => $target,
'MessageStructure' => 'json',
'Message' => $message
));
我一直在努力解决亚马逊SNS推送通知中的一个特殊问题,这在任何亚马逊文档中都找不到。 我正在尝试发送包含<code>的通知 < code >尝试我们的新M 提前致谢!
我想向移动设备发送丰富的推送通知。我的意思是,当用户收到推送通知时,设备可以显示图像或视频等媒体附件(例如https://medium . com/@ tsif/IOs-10-rich-push-notifications-with-media-attachments-a54dc 86586 c 2)。 亚马逊SNS推送通知是否支持富推送功能?
我正在尝试通过php向Android应用程序发送推送通知。我设置了亚马逊SNS帐户,并使用谷歌服务器密钥为GCM API创建了SNS平台。 使用 AWS 凭证,我编写了一个 cron,它从数据库读取通知消息,并使用 Amazon php api 发布到 sns 服务。我正在以 cron 获取 Amazon 终端节点,并在其上发布通知。 我收到的状态是通行证和通知请求。但设备上没有收到实际通知。 我
我想通过向Android手机endpoint发送推送通知。 已配置并已准备好发送通知。在使用我发送的 JSON 的 SNS 控制台中 { “GCM”: “{ ”通知“: { ”标题“: ”标题“, ”正文“: ”正文“} 但我只收到空notification.No正文,没有标题(只有应用程序图标)。
我已经谷歌了这个问题,并搜索了AWS文档,但仍然找不到答案。 在哪里为GCM Android定义AWS SNS服务的消息推送图标图像?
我们一直在通过Amazon SNS和Google Cloud Messaging(GCM)向Android设备发送消息。这是我们正在输入SNS发送消息功能的原始SNS json消息: 由于某种原因,带有和的“通知”部分似乎被忽略了。设备上未显示任何通知。 任何人都可以确认通知可以通过SNS发送,或者(正如我们所怀疑的那样)是否存在一些限制,其中只能理解json的数据部分?