public static function sendMessageRemoved($message, $userFrom, $userTo) { // GCM SENDER $client = new Client(__API_KEY__); // REGISTRATION IDS IN ARRAY $registrationIds = []; $registrationIds[] = $userFrom->registrationId; $registrationIds[] = $userTo->registrationId; $data = array('type' => 3, 'id' => $message->id, 'userFrom_id' => $userFrom->id, 'userTo_id' => $userTo->id); $options = ['collapse_key' => 'messageRemoved', 'delay_while_idle' => false, 'time_to_live' => 4 * 7 * 24 * 60 * 60, 'restricted_package_name' => 'br.com.thiengo.gcmexample', 'dry_run' => false]; $client->send($data, $registrationIds, $options); // ENVIA A PUSH MESSAGE $responses = $client->getResponses(); // ACESSA A ÚNICA POSIÇÃO POSSÍVEL, PRIMEIRA POSIÇÃO foreach ($responses as $response) { $response = json_decode($response->getContent()); // VERIFICA SE HÁ ALGUM CANONICAL_ID, QUE INDICA QUE AO MENOS UM REGISTRATION_ID DEVE SER ATUALIZADO if ($response->canonical_ids > 0 || $response->failure > 0) { // PERCORRE TODOS OS RESULTADOS VERIFICANDO SE HÁ UM REGISTRATION_ID PARA SER ALTERADO for ($i = 0, $tamI = count($response->results); $i < $tamI; $i++) { if (!empty($response->results[$i]->canonical_id)) { // SE HÁ UM NOVO REGISTRATION_ID, ENTÃO ALTERANO BD if ($i == 0) { $userFrom->registrationId = $response->results[$i]->canonical_id; CgdUser::updateRegistrationId($userFrom); } else { $userTo->registrationId = $response->results[$i]->canonical_id; CgdUser::updateRegistrationId($userTo); } } else { if (strcasecmp($response->results[$i]->error, "NotRegistered") == 0) { // DELETE REGISTRO DO BD if ($i == 0) { CgdUser::deleteUser($userFrom); } else { CgdUser::deleteUser($userTo); } } } } } } }