Android: Test Push Notification online (Google Cloud Messaging) [zamknięty]

Aktualizacja: GCM jest przestarzałe, użyj FCM

Wdrażam Google Cloud Messaging w mojej aplikacji. Kod serwera nie jest jeszcze gotowy i w moim środowisku ze względu na pewne ograniczenia firewalla nie mogę wdrożyć testowego sever dla powiadomień push. To, czego szukam, to serwer online, który wysyłałby powiadomienia testowe do mojego urządzenia, aby przetestować implementację klienta.

Author: Adnan, 2014-03-04

4 answers

Znalazłem bardzo łatwy sposób, aby to zrobić.

Otwórz http://phpfiddle.org/

Wklej następujący skrypt php w polu. W PHP Script set API_ACCESS_KEY ustawia identyfikatory urządzeń oddzielone przecinkiem.

Naciśnij F9 lub kliknij Uruchom.

Miłej zabawy;)

<?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;
?>

Uwaga: Podczas tworzenia klucza dostępu API w google developer console, musisz użyć 0.0.0.0 / 0 jako adresu ip. (Do celów testowych).

Edit:

W przypadku otrzymania nieważnej rejestracji odpowiedź z serwera GCM, proszę sprawdzić ważność tokenu urządzenia. Możesz sprawdzić ważność tokena urządzenia za pomocą następującego adresu url:

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

Niektóre kody odpowiedzi:

Poniżej znajduje się opis niektórych kodów odpowiedzi, które możesz otrzymać z serwera.

{ "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
 165
Author: Adnan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-11 14:47:48

Listonosz: rozszerzenie Google chrome

Użyj listonosza, aby wysłać wiadomość zamiast serwera. Ustawienia listonosza są następujące:

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"
  } 
}

Na sukces dostaniesz

Response :
{
  "multicast_id": 6506103988515583000,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    {
      "message_id": "0:1432811719975865%54f79db3f9fd7ecd"
    }
  ]
}
 155
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-26 15:36:33

Pushwatch to darmowy tester powiadomień push GCM i APNS opracowany przeze mnie w Django/Python, ponieważ znalazłem się w podobnej sytuacji podczas pracy nad wieloma projektami. Może wysyłać powiadomienia GCM i APNS, a także wspierać wiadomości JSON dla dodatkowych argumentów. Poniżej znajdują się linki do testerów.

Proszę dać mi znać, jeśli masz jakieś pytania lub problemy z jego użyciem.

 18
Author: Amyth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-08 15:07:41

Listonosz jest dobrym rozwiązaniem, podobnie jak php fiddle. Aby jednak uniknąć umieszczania za każdym razem adresu URL GCM i informacji nagłówka, możesz również użyć tego sprytnego narzędzia GCM Notification Test Tool

 6
Author: Varun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-18 13:55:13