amazon sns — подписка на php aws sns с политикой фильтрации номеров и отправка уведомлений подписчикам в диапазоне

У меня есть требование, где я хочу добавить политику фильтра номеров (UNIX timestamp) к подписке устройства, и при публикации уведомления в теме добавить атрибуты сообщения с политикой диапазона, но я получаю внутренний ответ сервера из AWS SDK.

Вот что я делаю при публикации сообщения на устройстве, подписанном в определенное время,

$filterMessageAttributes = [
"DataType" => "Binary",
"BinaryValue" => json_encode([
"numeric" => [
">=",
$filterStartUnixTime,
"<=",
$filterEndUnixTime
]
])
];
$res =  $sns->publish([
'Message' => json_encode($message),
'TopicArn' => $appTopicARN,
'MessageStructure' => 'json',
'MessageAttributes' => [
"subscription_timestamp" =>  $filterMessageAttributes
]
]);

Это работает нормально, но подписка устройства на тему SNS и установка атрибутов подписки дает 500 код ответа от AWS

$res = $sns->createPlatformEndpoint([
"PlatformApplicationArn" => "<android app arn>",
"Token" => "<device token>",
"CustomUserData" => "<some user attributes>"]);
$endPointARN = $res->get("EndpointArn");
$res = $sns->subscribe([
"TopicArn" => "<android topic arn>",
"Protocol" => "application",
"Endpoint" => $endPointARN
]);
/**
* Add unix timestamp attribute  to the above subscription
*/
$sns->setSubscriptionAttributes([
// SubscriptionArn is required
'SubscriptionArn' => $res->get("SubscriptionArn"),
// AttributeName is required
'AttributeName' => 'FilterPolicy',
'AttributeValue' => json_encode([
"subscription_timestamp" => [time()]
])]);

Ниже приведен ответ от AWS,

Error executing "SetSubscriptionAttributes" on "https://sns.us-west-2.amazonaws.com"; AWS HTTP error: Server error: `POST https://sns.us-west-2.amazonaws.com` resulted in a `500 Internal Server Error` response: <ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">   <Error>     <Type>Receiver</Type>     <Code>InternalF (truncated...)  InternalFailure (server):  - <ErrorResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">   <Error>     <Type>Receiver</Type>     <Code>InternalFailure</Code>   </Error>   <RequestId><REQUESTID></RequestId> </ErrorResponse>

Версия PHP AWS SDK: «3.52.31»

4

Решение

Задача ещё не решена.

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

Других решений пока нет …

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