Я получаю странную ошибку, когда пытаюсь вызвать $ sns-> publish (PHP) — он никогда не возвращается, я не уверен, что он умирает тихо, но я не смог поймать исключение или получить код возврата.
Я смог отследить это, когда устройство для токена (конечной точки) уже отключено в консоли SNS. При первом вызове он отключается, я полагаю, из-за ошибки, возвращаемой GCM, этот токен недействителен.
Что я делаю не так и как я могу предотвратить проблему? Я не хочу проверять каждую конечную точку на предмет ее включения, поскольку, возможно, я нажимаю до 10 из 1000. Однако я определенно хочу продолжить выполнение моего push-цикла.
Какие-нибудь мысли? Форум команды AWS кажется бесполезным, прошло уже несколько недель с тех пор, как первоначальный ответ члена команды AWS запрашивал код без ответа с того времени.
перед отправкой push-уведомления вы можете проверить, отключена ли конечная точка, как —
$arn_code = ARN_CODE_HERE;
$arn_arr = array("EndpointArn"=>$arn_code);
$endpointAtt = $sns->getEndpointAttributes($arn_arr);
//print_r($endpointAtt);
if($endpointAtt != 'failed' && $endpointAtt['Attributes']['Enabled'] != 'false')
{
....PUBLISH CODE HERE....
}
Это не остановит казнь.
Надеюсь, это поможет вам.
Других решений пока нет …