Android:オンラインでプッシュ通知をテスト(Googleクラウドメッセージング)[終了]


99

アップデート: GCMが廃止されて、使用FCM

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


他の投稿を削除したので、ここに書き込みます:-) NotificationListenerServiceがAPI 18に追加されました。IDをSharedPreferencesにint配列として保存し、新しいIDの追加後に必要なサイズよりも大きい場合は、配列のサイズをチェックするロジックを実行します最初の要素とキャンセル...
セルビン2014年

回答:


167

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

http://phpfiddle.org/を開きます

次のphpスクリプトをボックスに貼り付けます。PHPスクリプトセットAPI_ACCESS_KEYで、デバイス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;
?>

FCMの場合、google urlは次のようになります:https : //fcm.googleapis.com/fcm/send

FCM v1のgoogle urlは次のようになります:https : //fcm.googleapis.com/v1/projects/YOUR_GOOGLE_CONSOLE_PROJECT_ID/messages : send

注: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

1
実際にはありません:)テストの目的で、0.0.0.0 / 0 ipを使用できます。それはうまくいくでしょう。
Adnan

4
私は毎回取得します(APIキーとデバイスID:エラー ":" InvalidRegistration
Leandro

4
API KEY安全にキーを渡すのは安全ではないので、後で再生成してください。
Flash Thunder

6
Unauthorized Error 401が発生し続けます。理由は何ですか?
Razel Soco、2015

2
{"error": "invalid_token"、 "error_description": "Invalid Value"}これが見つかりました。無効な登録IDを取得しています。
Anand

159

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

3
これは、GCMをテストするための最もクリーンで安全なソリューションだと思います。ありがとう!
Bianca Daniciuc 2015年

12
私のためにPOSTで働いた!また、AuthorizationヘッダーにAPI_KEYだけでなく「key =」を含めることも忘れないでください
Raphael Royer-Rivard

3
@Raphaelロイヤー-Rivardあなたのライフセーバー、私はAuthorizationヘッダの「キー=を」行方不明になった
Khurram Shehzad

3
Google Developer Consoleで作成できるキーがいくつかあります。はっきりしない場合に備えて、postmanで使用するには、「サーバーキー」を作成する必要があります。
Liangjun

3
ここの「registration_ids」とは何ですか?それらをどこに見つけるか?
Himel Nag Rana 2017

19

Pushwatchは、Django / Pythonで自分で開発した無料のオンラインGCMおよびAPNSプッシュ通知テスターで、複数のプロジェクトで作業しているときに同様の状況に陥っています。通知GCMAPNS通知の両方を送信でき、追加の引数のJSONメッセージもサポートします。以下はテスターへのリンクです。

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


1
あなたの反対票を説明してください。
エイミス2016年

1
私が必要とするものだけが完全に機能します(郵便配達員を試してみましたが、うまくいきましたが、アプリが開かれていないときにメッセージがデバイスに表示されませんでした。)
Greywire

こんにちはAmyth私はあなたのサイトでこのエラーを受け取ります:「HTTPエラー401:無効な(レガシー)サーバーキーが配信されたか、送信者がリクエストの実行を許可されていません。」何をすべきかわからない?Googleプロジェクトを作成し、SenderIDのプロジェクトIDとプロジェクト番号を使用して、Google API設定の[これらのHTTPリファラー(ウェブサイト)からのリクエストを受け入れる]にサイトを追加しました。よろしくラスムス
Thylle 2018年

このURLはサポートされなくなったことに注意してください。2018年4月10日をもって、GoogleはGCMを廃止しました。GCMサーバーとクライアントAPIはサポートが終了しており、2019年4月11日に削除されます 。GCM情報
Stinky Towel

7

Postmanは優れたソリューションであり、php Fiddleも同様です。ただし、GCM URLとヘッダー情報を毎回入力しないようにするには、この気の利いたGCM通知テストツールを使用することもできます。


2
AndroidとiOSの両方をサポートするこのオンラインテスターを使用できます。使いやすいシンプルなウェブサイトpushtry.com 1. .p12ファイルを選択2.デバイストークンを入力3 3.環境サンドボックスまたは本番環境を選択4.メッセージを入力5.送信
Arvind
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.