1

J'ai récemment changé de serveur et mon code de messagerie Google Cloud ne fonctionne plus. Je n'ai pas beaucoup d'expérience sur le serveur et j'ai essayé de chercher sur Internet une solution appropriée, mais je n'ai pas réussi.Configuration d'un serveur Apache (Ubuntu 12.04) pour GCM (Linode)

J'ai eu un serveur GoDaddy (fonctionne) et j'ai configuré et commuté à une pile de lampe sur un serveur linode. J'ai dû manquer quelque chose dans la configuration du serveur car le code qui envoie gcm fonctionne sur le godaddy mais ne fonctionne pas sur le serveur apache linode.

Il n'y a aucun problème à enregistrer les identifiants, mais il échoue à envoyer le message gcm. Je les envoie en utilisant un script PHP et je sais que ce n'est pas le problème.

Y a-t-il des paramètres à configurer pour que Google Cloud Messaging puisse fonctionner?

journal d'accès:

###.###.###.### - - [23/Dec/2015:12:47:40 -0500] "POST /test/test.php HTTP/1.1" 500 372 "-" "Mozilla/5.0 (Macin 

Erreur journal:

empty 

J'ai suivi ces tutoriels:

https://www.linode.com/docs/getting-started

https://www.linode.com/docs/websites/lamp/lamp-on-ubuntu-14-04

https://www.linode.com/docs/databases/mysql/install-mysql-phpmyadmin-on-ubuntu-12-04

https://www.linode.com/docs/security/ssl/ssl-apache2-debian-ubuntu

https://www.linode.com/docs/websites/apache/apache-web-server-ubuntu-12-04

GCM.php

<?php 

class GCM { 
function __construct() { 

} 


public function send_notification($registatoin_ids, $message, $google) { 

    $url = 'https://gcm-http.googleapis.com/gcm/send'; 

    $fields = array(
     'registration_ids' => $registatoin_ids, 
     'data' => $message, 
    ); 

    $headers = array(
     'Authorization: key=' . $google, 
     '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_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); 
    echo $result; 
} 

} 

?> 

test.php

<?php 
include_once './gcm.php'; 

$message = $_POST['msg']; 
$reg = $_POST['regid']; 
$registation_ids = array(); 
array_push($registation_ids, $reg); 
$googleAPIKey = "GOOGLE_API_KEY"; 

$gcm = new GCM(); 
$messages = array("message" => $message, "analyticsId" => "someid"); 
$result = $gcm->send_notification($registation_ids, $messages, $googleAPIKey); 
echo $result; 
?> 

Tourné sur l'enregistrement php et toujours rien. Je n'ai toujours que l'erreur interne 500 sur le serveur linode.

Répondre