Frage

Ich habe Push-Benachrichtigungen mit GCM implementiert.Alles funktioniert perfekt, wenn ich die erforderlichen Dateien ausführe, um Nachrichten von meinem lokalen Server (auf meinem Computer mit) an das Gerät zu senden XAMPP Server).Aber wenn ich Dateien auf meinen Live-Server hochlade und wenn ich die Dateien ausführe, erhalte ich keine Push-Benachrichtigung.Ich habe alle Dateien überprüft, aber ich bekomme sie nicht.Unten ist mein php Codes:

nachricht senden.PHP

<?php

if (isset($_REQUEST["regId"]) && isset($_REQUEST["message"]) && isset($_REQUEST["senderid"])) {
    $regId = $_REQUEST["regId"];
    $message = $_REQUEST["message"];
    $senderid = $_REQUEST["senderid"];


    include_once './GCM.php';

    $gcm = new GCM();

    $registatoin_ids = array($regId);

    $message = array("message" => $message, "sender_id" => $senderid);
    $result = $gcm->send_notification($registatoin_ids, $message);
    echo $result;die;

}

?>

GCM.PHP

<?php

    class GCM {

        function __construct() {

        }

        public function send_notification($registatoin_ids, $message) {
            // include config
            include_once './config.php';


            // Set POST variables
            $url = 'https://android.googleapis.com/gcm/send';

            $fields = array(

                'registration_ids' => $registatoin_ids,
                'data' => $message, 

            );

            $headers = array(
                'Authorization: key=' . GOOGLE_API_KEY,
                'Content-Type: application/json'
            );

            // Open connection
            $ch = curl_init();


            // Set the url, number of POST vars, POST data
            curl_setopt($ch, CURLOPT_URL, $url);

            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            // Disabling SSL Certificate support temporarly
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

            // Execute post
            $result = curl_exec($ch);

            if ($result === FALSE) {
                die('Curl failed: ' . curl_error($ch));
            }

            // Close connection
            curl_close($ch);
            echo 'result';
            echo json_encode($fields);
            echo $result;
        }

    }

    ?>

Ich führe aus nachricht senden.PHP datei von meinem Browser durch Bereitstellung des Servers url und notwendige Parameter.Auf dem lokalen Computer erhalte ich eine Push-Benachrichtigung, aber während ich dieselbe Datei ausführe, indem ich einen Live-Server bereitstelle url, es gibt mir keine Ausgabe.Was kann das Problem sein?

War es hilfreich?

Lösung

Wenn Sie von einer Live-Adresse aus auf die PHP-Seite zugreifen möchten, müssen Sie nur aktivieren cURL von Ihrem XAMPP

Gehen Sie zu Ihrem PHP.ini-Datei und folgende Zeile auskommentieren ( löschen ; wird es aus dem Kommentar entfernen),

;extension=php_curl.dll

Danach können Sie curl in phpinfo () wie im folgenden Bild überprüfen,

enter image description here

Für LAMPE

Von http://buzznol.blogspot.com/2008/12/install-curl-extension-for-php-in.html:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

Nach der Installation von libcurl sollten Sie den Webserver mit einem der folgenden Befehle neu starten,

sudo /etc/init.d/apache2 restart ODER sudo service apache2 restart

Andere Tipps

Das Problem liegt möglicherweise am API-Schlüssel, den Sie zum Senden von Push-Benachrichtigungen an das Android-Gerät verwenden.

In der Google Developers Console sind zwei Arten von API-Schlüsseln verfügbar:

Verwenden Sie ein serverschlüssel wenn Ihre Anwendung auf einem Server ausgeführt wird.

Verwenden Sie ein browser-Schlüssel wenn Ihre Anwendung auf einem Client ausgeführt wird, zum Beispiel aus JavaScript oder einem anderen clientseitigen Webbrowser-Kontext.

Unten ist der Screenshot der Entwicklerkonsole, wo Sie die bekommen würden browser- und Server-API-Schlüssel.

enter image description here

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