Frage

Ich habe ein PHP-Skript eingerichtet, das Push-Benachrichtigungen sendet.Alles funktioniert einwandfrei und es wird an jedes Gerät im Array dieselbe Nachricht gesendet.Aber was mich nervt, ist, was passiert, wenn ich auf jedem Gerät eine andere Nachricht senden möchte (z. B. abhängig von den Geräteeinstellungen)?

Was wäre hier der richtige Ansatz?Mein erster Gedanke ist, die PushNotification-Funktion für jedes Gerät separat aufzurufen, anstatt sie einmal aufzurufen und eine Reihe von Geräten an GCM zu senden.

Das ist der Code, den ich verwende, also bitte um Rat...

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);
War es hilfreich?

Lösung

Sie können in derselben HTTP-Anfrage an den GCM-Server keine unterschiedlichen Nachrichten an verschiedene Geräte senden.Wenn für jedes Gerät eine eindeutige Nachricht erforderlich ist, ist auch ein eindeutiger Anruf bei Ihnen erforderlich sendPushNotificationToGCM Funktion.Wenn einige Geräte dieselbe Nachricht teilen, können Sie diese Nachricht im selben Funktionsaufruf an sie senden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top