GCM не работи на жив сървър

Внедрих насочено известие с помощта на GCM. Всичко работи перфектно, когато стартирам необходимите файлове за изпращане на съобщения до устройството от моя локален сървър (на моя компютър с XAMPP сървър). Но когато качвам файлове на моя жив сървър и когато стартирам файловете, не получавам насочено известие. Проверих всички файлове, но не ги получавам. По-долу е моят php код:

изпрати_съобщение.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;
        }

    }

    ?>

Изпълнявам файла send_message.php от моя браузър, като предоставям сървър url и необходимите параметри. На локална машина получавам насочено известие, но докато изпълнявам същия файл, като предоставям жив сървър url, той не ми дава никакъв изход. Какъв може да е проблемът?


person Looking Forward    schedule 25.02.2014    source източник
comment
Анил, можеш ли да влезеш от URL адрес на живо? Искам да кажа, че когато поставите кода си на сървър на живо, можете ли да получите достъп до него чрез URL адрес на живо?   -  person Lucifer    schedule 25.02.2014
comment
да, имам достъп до него...   -  person Looking Forward    schedule 25.02.2014
comment
Добре, можеш ли да ми кажеш този url?   -  person Lucifer    schedule 25.02.2014
comment
@Kedarnath: Мисля, че тук проблемът е в извитата част на файла GCM.php...   -  person Looking Forward    schedule 25.02.2014
comment
Да, мисля, че curl има някаква настройка в XAamp, за да го отвори от местоположение на живо.   -  person Lucifer    schedule 25.02.2014
comment
нека да продължим тази дискусия в чата   -  person Lucifer    schedule 25.02.2014


Отговори (2)


Когато искате да получите достъп до PHP страница от активен адрес, трябва само да активирате cURL от вашия XAMPP

Отидете до вашия php.ini файл и премахнете коментара от следния ред (изтриването ; ще го премахне от коментара),

;extension=php_curl.dll

След като направите това, можете да проверите curl в phpinfo() като изображението по-долу,

въведете описание на изображението тук

ЗаЛАМПАта

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

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

След като инсталирате libcurl, трябва да рестартирате уеб сървъра с една от следните команди,

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

person Lucifer    schedule 25.02.2014
comment
По-долу е връзката за инсталиране на CURL на LAMP - person Looking Forward; 25.02.2014
comment
stackoverflow.com/ въпроси/2939820/ - person Looking Forward; 25.02.2014

Проблемът може да е в API ключа, който използвате за изпращане на насочени известия до устройството с Android.

В Google Developers Console са налични два вида API ключове:

Използвайте сървърен ключ ако приложението ви работи на сървър.

Използвайте ключ за браузър ако приложението ви работи на клиент, например от JavaScript или друг контекст на уеб браузър от страна на клиента.

По-долу е екранната снимка на конзолата за разработчици, където ще получите API ключовете за браузър и сървър.

въведете описание на изображението тук

person arshu    schedule 25.02.2014