2017-10-03 1 views
0

Je travaille avec les messages pushbase et notificacion pour les appareils mobiles. J'ai configuré la console Firebase avec un projet et deux applications (IOS - ANDROID). Si j'essaie d'envoyer une notification à l'aide de la console Firebase, le message est visible sur le périphérique, mais si j'utilise le protocole HTTP et la méthode POST, la réponse est le code 200 avec ce message: {"multicast_id": ******, "success": 0, "failure": 1, "canonical_ids": 0, "results": [{"error": "InvalidRegistration"}]}. Et je ne sais pas comment trouver l'erreur sur l'enregistrement invalide parce que le message ne pas envoyé au téléphone. J'ai copié le server_key et les tokens pour les applications et je setted ce à partir du serveur:La notification push ne fonctionne pas avec les méthodes HTTP et POST utilisant Java et Cordova-Phonegap

String title = "TITLE"; 

String message = "THIS IS A MESSAGE"; 

String APP_ID[] = { 
       "1:********:ios:*******", 
       "1:*******:android:*****" 
}; 

String SERVER_KEY="***************....****"; 

String SERVER_URL = "https://fcm.googleapis.com/fcm/send"; 

String json = "{" 
     + "\"notification\":{" 
     + "\"title\": \""+title+"\"," 
     + "\"body\": \""+message+"\"," 
     + "\"sound\": \"default\"" 
     + "}," 
     + "\"content_available\": true," 
     + "\"priority\": \"high\"," 
     + "\"to\": \""+APP_ID[1]+"\"" 
     + "}"; 

StringEntity entity = new StringEntity(json); 

CloseableHttpClient client = HttpClientBuilder.create().build(); 

HttpPost request = new HttpPost(SERVER_URL); 
request.addHeader("Content-Type", "application/json"); 
request.addHeader("Authorization", "key="+SERVER_KEY); 
request.setEntity(entity); 
HttpResponse response = client.execute(request); 

responseCode = response.getStatusLine().getStatusCode(); 

System.out.println(EntityUtils.toString(response.getEntity())+". Status Code: "+responseCode); 

client.close(); 

appareil mobile Dans la configuration est en utilisant Javascript PhoneGap-plugin-push. Lorsque je lance l'application Cordova APP, la console affiche un enregistrement réussi. google-services.json et GoogleServices-info.plist ont été configurés lors de plug-in d'installation en utilisant la commande:

$> cordova plugin add phonegap-plugin-push --variable SENDER_ID = 'SENDER_CODE_extract_from_firebase_project' 

Et javascript configuration:

var app = { 
bindEvents: function() { 
    document.addEventListener('deviceready', this.onDeviceReady, false); 
}, 
onDeviceReady: function() { 
    app.receivedEvent('deviceready'); 

     PushNotification.hasPermission(permissionListener); 

     var push = PushNotification.init({ 
         android: { 
          vibrate: true, 
          sound: true 
         }, 
         ios: { 
          alert: true, 
          sound: true 
         } 
        }); 

     push.on('error',errorListener); 

     push.on('registration',registrationListener); 

     push.on('notification', notificationListener); 

    } 
}; 



//FOR PUSH NOTIFICATIONS 

    /** 
    * Listen if the device has permissions. 
    */ 
    function permissionListener(data) { 

     console.log('is enabled: '+data.isEnabled); 

    } 

    /** 
    * For registration event 
    */ 
    function registrationListener(data){ 
     console.log("Registration id: "+data.registrationId); 
     console.log("Registration Type: "+data.registrationType); 
    } 


    function notificationListener(data){ 
      alert(data.message); 
    } 

    function errorListener(e){ 
     console.log("ERROR with PUSH NOTIFICATIONS: "+e.message); 
    } 

Répondre

0

Eh bien, mon problème a été résolu de changer le "APPS_ID" valeurs vectorielles. J'ai été confus pour les identifiants sur le terrain "à" sur JSON. l'ID APP n'est pas le jeton correct pour envoyer des messages. Lorsque j'exécute l'application cordova, le plugin pour les notifications push affiche un identifiant d'enregistrement, et c'est le bon jeton.

0

Vous envoyez un deviceId incorrect reçu par le téléphone au serveur, assurez-vous que deviceId ne doit pas être modifié ou modifié.

Invalid Registration Token 200 + error:InvalidRegistration Check the format of the registration token you pass to the server. Make sure it matches the registration token the client app receives from registering with Firebase Notifications. Do not truncate or add additional characters.

https://firebase.google.com/docs/cloud-messaging/http-server-ref