web-dev-qa-db-fra.com

Android: Tester la notification en ligne (Google Cloud Messaging)

Mise à jour: GCM est obsolète, utilisez FCM

J'implémente Google Cloud Messaging dans mon application. Le code serveur n'est pas encore prêt et dans mon environnement, en raison de certaines restrictions du pare-feu, je ne peux pas déployer de serveur de test pour la notification Push. Ce que je recherche, c’est un serveur en ligne qui enverrait des notifications de test à mon appareil pour tester la mise en oeuvre de mon client.

98
Adnan

J'ai trouvé un moyen très facile de faire cela.

Ouvrir http://phpfiddle.org/

Coller le script php suivant dans la boîte. Dans le script php, définissez API_ACCESS_KEY, définissez les ID de périphérique séparés par une virgule.

Appuyez sur F9 ou cliquez sur Exécuter.

S'amuser ;)

<?php


// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'YOUR-API-ACCESS-KEY-GOES-HERE' );


$registrationIds = array("YOUR DEVICE IDS WILL GO HERE" );

// prep the bundle
$msg = array
(
    'message'       => 'here is a message. message',
    'title'         => 'This is a title. title',
    'subtitle'      => 'This is a subtitle. subtitle',
    'tickerText'    => 'Ticker text here...Ticker text here...Ticker text here',
    'vibrate'   => 1,
    'sound'     => 1
);

$fields = array
(
    'registration_ids'  => $registrationIds,
    'data'              => $msg
);

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

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://Android.googleapis.com/gcm/send' );
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 );
curl_close( $ch );

echo $result;
?>

Remarque: lors de la création de la clé d'accès à l'API sur la console de développement Google, vous devez utiliser 0.0.0.0/0 comme adresse IP. (À des fins de test).

Modifier:

En cas de réponse d'enregistrement non valide du serveur GCM, veuillez vérifier la validité de votre jeton de terminal. Vous pouvez vérifier la validité de votre jeton d'appareil en utilisant l'URL suivante:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=YOUR_DEVICE_TOKEN

Quelques codes de réponse:

Vous trouverez ci-dessous la description de certains codes de réponse que vous pouvez recevoir du serveur.

{ "message_id": "XXXX" } - success
{ "message_id": "XXXX", "registration_id": "XXXX" } - success, device registration id has been changed mainly due to app re-install
{ "error": "Unavailable" } - Server not available, resend the message
{ "error": "InvalidRegistration" } - Invalid device registration Id 
{ "error": "NotRegistered"} - Application was uninstalled from the device
166
Adnan

POSTMAN: extension de Google chrome

Utilisez postman pour envoyer un message à la place du serveur. Les paramètres de postier sont les suivants:

Request Type: POST

URL: https://Android.googleapis.com/gcm/send

Header
  Authorization  : key=your key //Google API KEY
  Content-Type : application/json

JSON (raw) :
{       
  "registration_ids":["yours"],
  "data": {
    "Hello" : "World"
  } 
}

en cas de succès, vous obtiendrez

Response :
{
  "multicast_id": 6506103988515583000,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    {
      "message_id": "0:1432811719975865%54f79db3f9fd7ecd"
    }
  ]
}
157
user3881050

Pushwatch est un testeur de notification en ligne gratuit pour GCM et APNS développé par moi-même sous Django/Python, car je me suis trouvé dans une situation similaire alors que je travaillais sur plusieurs projets. Il peut envoyer les notifications GCM et APNS et prendre en charge les messages JSON pour les arguments supplémentaires. Voici les liens vers les testeurs.

S'il vous plaît laissez-moi savoir si vous avez des questions ou rencontrez des problèmes d'utilisation.

18
Amyth

Postman est une bonne solution, tout comme le violon php. Toutefois, pour éviter de saisir à chaque fois l’URL du GCM et les informations d’en-tête, vous pouvez également utiliser cette astuce outil de test de notification GCM

6
Varun