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);
}
}
}
}
}
}
}