web-dev-qa-db-ja.com

Android:プッシュ通知をオンラインでテストする(Google Cloud Messaging)

更新:GCM は非推奨、 FCM を使用

アプリケーションにGoogle Cloud Messagingを実装しています。サーバーコードはまだ準備ができておらず、ファイアウォールの制限のために私の環境ではプッシュ通知用のテストサーバーを展開できません。私が探しているのは、クライアント実装をテストするためにデバイスにテスト通知を送信するオンラインサーバーです。

98
Adnan

これを行う非常に簡単な方法を見つけました。

開く http://phpfiddle.org/

次のphpスクリプトをボックスに貼り付けます。 API_ACCESS_KEYを設定するphpスクリプトで、comaで区切られたデバイスIDを設定します。

F9キーを押すか、[実行]をクリックします。

楽しむ ;)

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

注:Google開発者コンソールでAPIアクセスキーを作成するときは、IPアドレスとして0.0.0.0/0を使用する必要があります。 (テスト目的)。

編集:

GCMサーバーから無効な登録応答を受信した場合は、デバイストークンの有効性を相互確認してください。次のURLを使用して、デバイストークンの有効性を確認できます。

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

一部の応答コード:

以下は、サーバーから受信する可能性のあるいくつかの応答コードの説明です。

{ "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:Google chrome拡張機能

サーバーの代わりにpostmanを使用してメッセージを送信します。 Postman設定は次のとおりです。

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

成功するとあなたが得る

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

Pushwatch は、Django/Pythonで自分で開発したオンラインGCMおよびAPNSプッシュ通知テスターを無料で使用できます。 GCMAPNSの両方の通知を送信でき、追加の引数のJSONメッセージもサポートします。以下はテスターへのリンクです。

ご質問がある場合や、使用中に問題が発生した場合はお知らせください。

18
Amyth

Postmanは良い解決策であり、PHPフィドルも同様です。ただし、毎回GCM URLとヘッダー情報を入力しないようにするには、この気の利いた GCM通知テストツール

6
Varun