веб-сервисы Amazon — PHP AWS SNS SDK — Значок

Простой вопрос, как отправить номер значка в push-уведомлениях, используя AWS SNS?

Я узнал, что его нужно как-то отформатировать в формате json, но не уверен, как это сделать.

В документации AWS нет этой информации, или, по крайней мере, я ее не нашел.

Спасибо!

Мой код до сих пор, который работает:

    $sns = SnsClient::factory(array(
'key' => $this->app()->getConfig()->get('aws.sns.key'),
'secret' => $this->app()->getConfig()->get('aws.sns.secret'),
'region' => $this->app()->getConfig()->get('aws.sns.region'),
));

$payload = [
'Message' => $this->_message,
'TargetArn' => $this->_device->getDeviceArn()
];

$sns->publish($payload);

4

Решение

Прежде всего, взгляните на этот форум разработчиков AWS.
статья

Подводя итог этой статье, в вашем примере _message должен выглядеть примерно так:

{"APNS":"{\"aps\":{\"alert\":\"<message>\"}}"}

и вам нужно добавить

'MessageStructure' => 'json',

в $payload

Вот код, который я использую для создания сообщения JSON:

    $contents = array();
$contents['badge'] = "1";
$contents['alert'] = addslashes($push_message);
$contents['sound'] = "default";
$push = array("aps" => $contents);
$push_json = json_encode($push);

$json = json_encode(array('APNS' => $push_json));

$sns->publish(array('MessageStructure' => 'json',
'Message' => $json,
'TargetArn' => $endpointArn));

Надеюсь это поможет!

1

Другие решения

Если вам нужно сбросить номер значка, вы можете опубликовать его в конечной точке SNS с помощью {badge:0}

{
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"Removing the badge\", \"badge\":0}}"}

Надеюсь, что это помогает кому-то.

0

По вопросам рекламы [email protected]