Я пытаюсь реализовать APNS-PHP и обнаружил, что в моей тестовой среде у меня есть несколько недопустимых токенов (поскольку тестовые устройства перешли в производство).
Мне нужно получить идентификатор токена из сериализованного объекта в массиве, так как я хочу перехватить этот сценарий и удалить недопустимые токены из БД.Я использую следующий код, но он не работает:
$aErrorQueue = $push->getErrors();
if (!empty($aErrorQueue)) {
foreach($aErrorQueue as $error){
foreach($error['ERRORS'] as $err){
$message .= $err['statusMessage'] . " ";
if($err['statusCode'] == 8){
$phones = Phone::getPhonesWithToken($error['MESSAGE']['_aDeviceTokens:protected'][0]);
Phone::setToken($phones[0]['id'], "");
}
}
}
}
Проблема в том, что APNS_Message - это сериализованный объект в $ error ['MESSAGE'], и я не могу вспомнить, как получить доступ к токенув этом объекте ...
Var dump:
["MESSAGE"] => объект (ApnsPHP_Message) # 9 (8) {["_bAutoAdjustLongPayload: protected"] =>bool (true) ["_aDeviceTokens: protected"] => array (1) {[0] => string (64) "018E4B9CB8CF73341CE4EBE7138E25E605CD80FB74B3A9701CE5CCA6D9363F3A"} ["_sTent>int (256) ["_sSound: protected"] => NULL ["_aCustomProperties: protected"] => NULL ["_nExpiryValue: protected"] => int (604800) ["_mCustomIdentifier: protected"] => строка (17)"Message-Badge-004"}