Я использую PHP для отправки уведомлений на несколько устройств Android одновременно. Все регистрационные идентификаторы уникальны, ниже приводится запрос CURL, который я отправляю.
$url='https://android.googleapis.com/gcm/send';
$headers = array(
'Authorization: key=' . ANDROID_KEY,
'Content-Type: application/json'
);
$registration_ids = [];//with multiple registration ids
$notification = array(
'registration_ids' => $registration_ids,
'data' => array('notification_id' => $data['notification_id'],
'title' => $data['title'],
'message' => $data['message'])
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($notification));
$res = curl_exec($ch);
После многократной отладки я не смог найти причину для нескольких уведомлений (более 10 раз) на одном устройстве.
Есть ли способ проверить журнал запросов, полученных GCM. Любое руководство будет оценено.