IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

[Serveur GCM] erreur 401 Unauthorized


Sujet :

API standards et tierces Android

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut [Serveur GCM] erreur 401 Unauthorized
    Bonsoir, bonjour,

    Je recherche une solution à mon problème, j'ai passé des heures à chercher sur le net, mais en vain. J'espère que vous arriverez à m'aider à sortir de cette impasse .

    Je suis en train de mettre en place un serveur GCM en php, en local.
    J'ai suivi le tuto suivant http://javapapers.com/android/google...notifications/.

    J'arrive bien à récupérer le regid que j'ai mis dans le fichier GCMRegId.txt pour faire le test au niveau du serveur.
    Malheureusement, le serveur GCM n'arrive pas à communiquer avec le serveur Google. Dans le projet Google que j'ai créé, j'ai autorisée les ip suivants: 0.0.0.0/0, 127.0.0.1, ip privée, ip publique à faire des requêtes sur le serveur Google mais rien n'y fait, il y a toujours cette erreur qui persiste.

    Console Google developer:

    Nom : Capture.PNG
Affichages : 680
Taille : 155,3 Ko


    Serveur GCM en php:
    gcm.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    <?php
      //generic php function to send GCM push notification
       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", "********************");    
            $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;
        }
    ?>
    <?php
     
      //this block is to post message to GCM on-click
      $pushStatus = ""; 
      if(!empty($_GET["push"])) { 
        $gcmRegID  = file_get_contents("GCMRegId.txt");
        $pushMessage = $_POST["message"]; 
        if (isset($gcmRegID) && isset($pushMessage)) {    
          $gcmRegIds = array($gcmRegID);
          $message = array("m" => $pushMessage); 
          $pushStatus = sendPushNotificationToGCM($gcmRegIds, $message);
        }   
      }
     
      //this block is to receive the GCM regId from external (mobile apps)
      if(!empty($_GET["shareRegId"])) {
        $gcmRegID  = $_POST["regId"]; 
        file_put_contents("GCMRegId.txt",$gcmRegID);
        echo "Ok!";
        exit;
      } 
    ?>
     
     
    <p><h3><?php echo $pushStatus; ?></h3></p> 
    <p><h3><?php echo $gcmRegID; ?></h3></p>   
    <p><h3><?php echo $pushMessage; ?></h3></p>

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    <html>
        <head>
            <title>Google Cloud Messaging (GCM) Server in PHP</title>
        </head>
      <body>
        <h1>Google Cloud Messaging (GCM) Server in PHP</h1> 
        <form method="post" action="gcm.php/?push=1">                                      
          <div>                                
            <textarea rows="2" name="message" cols="23" placeholder="Message to transmit via GCM"></textarea>
          </div>
          <div><input type="submit"  value="Send Push Notification via GCM" /></div>
        </form>
     
        </body>
    </html>

    Merci de m'avoir lu!

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Re bonjour ,

    Personne n'a une idée de comment régler mon soucis .

    J'ai trouvé un autre tuto dans lequel il y avait un lien pour faire des tests directement sur un serveur push mise en ligne par l'auteur.
    Voici le lien: http://www.androidbegin.com/tutorial/gcm.html

    En renseignant les différents champs, j'obtiens une réponse avec succès. Ce qui me mène à penser qu'il y a un problème de reconnaissance entre mon serveur pusch en local et le serveur Google? Ce dernier n'accepte pas l'ip de mon serveur, donc mon pc. Pourtant, j'ai bien mis 0.0.0.0/0, dans la liste des ip autorisées.


    Merci pour vos réponses!


    Edit:
    J'ai bien désactivé le Pare-Feu pour les tests.

    Edit:
    Toujours coincée au même niveau.
    J'ai mis le script php sur un serveur distant cette fois-ci, mais ça ne fonctionne toujours pas, l'erreur 401 "Unauthorized" persiste toujours.
    D'ailleurs je ne sais même pas si je poste au bon endroit entre le script php, et le GCM pour Android .

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Enfin, j'ai fini par trouver!
    Heureuse et déçue en même temps, 2 jours pour ça !

    Il fallait soit laisser la partie où il fallait renseigner les ip autorisées, vide, soit mettre 0::0/0, pour que ça prenne en compte toutes les ipV6.

    En espérant que ça puisse aider quelqu'un par la suite!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intégration à Outlook 2003 : serveur introuvable ou 401 Unauthorized
    Par FailMan dans le forum Microsoft Dynamics CRM
    Réponses: 2
    Dernier message: 09/08/2010, 23h37
  2. Erreur 401 Unauthorized Administrateur
    Par PourLeFun dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 06/06/2010, 20h48
  3. Erreur 401 - Unauthorized
    Par sevine06 dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 18/11/2009, 09h08
  4. Erreur: 401 unauthorized
    Par Maduser dans le forum SharePoint
    Réponses: 2
    Dernier message: 31/10/2008, 10h44
  5. Erreur 401.2 sur serveur IIS 6.0
    Par Arthis dans le forum IIS
    Réponses: 0
    Dernier message: 27/07/2007, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo