Отправка разных кнопочных уведомлений для каждого устройства

StackOverflow https://stackoverflow.com//questions/24030944

Вопрос

Я установил PHP-скрипт, который отправит Push-уведомление.Все работает нормально, и он посылает же сообщение каждому устройству в массиве.Но что я ошибаюсь, что если я хочу отправить другое сообщение сделать каждое устройство (в зависимости от предпочтений устройств)?

Что будет правильным подходом здесь?Моя первая мысль состоит в том, чтобы вызвать функцию кнопки для каждого устройства отдельно вместо того, чтобы вызовать его один раз и отправлять массив устройств в GCM?

Это код, который я использую, поэтому, пожалуйста, посоветуйте ...

function sendPushNotificationToGCM($registatoin_ids, $message) {
    //Google cloud messaging GCM-API url
        $url = 'https://android.googleapis.com/gcm/send';
        $fields = array(
            'registration_ids' => $registatoin_ids,
            'data' => $message,
        );
    // Google Cloud Messaging GCM API Key
    define("GOOGLE_API_KEY", "my_api_key");    
        $headers = array(
            'Authorization: key=' . GOOGLE_API_KEY,
            'Content-Type: application/json'
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
        $result = curl_exec($ch);       
        if ($result === FALSE) {
            die('Curl failed: ' . curl_error($ch));
        }
        curl_close($ch);

        return($result);
}

$devices = array();

    while($results = $result->fetch_array()) {
        $devices[] = $results['dev_reg_id'];
    }

    //return $devices;

    $pushMessage = $message;

    $message = array("m" => $pushMessage); 
    $pushStatus = sendPushNotificationToGCM($devices, $message);
.

Это было полезно?

Решение

Вы не можете отправлять разные сообщения на разные устройства в том же http-запросе на сервер GCM.Если каждое устройство требует уникального сообщения, также потребуется уникальный вызов вашей функции sendPushNotificationToGCM.Если некоторые устройства разделяют одно и то же сообщение, вы можете отправить это сообщение в тот же вызов функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top