アプリケーションにGoogleクラウドメッセージングを実装しています。サーバーコードはまだ準備ができておらず、ファイアウォールの制限のために私の環境ではプッシュ通知用のテストサーバーを展開できません。私が探しているのは、クライアントに実装をテストするためにデバイスにテスト通知を送信するオンラインサーバーです。
アプリケーションにGoogleクラウドメッセージングを実装しています。サーバーコードはまだ準備ができておらず、ファイアウォールの制限のために私の環境ではプッシュ通知用のテストサーバーを展開できません。私が探しているのは、クライアントに実装をテストするためにデバイスにテスト通知を送信するオンラインサーバーです。
回答:
これを行う非常に簡単な方法を見つけました。
次の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
API KEY
安全にキーを渡すのは安全ではないので、後で再生成してください。
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"
}
]
}
Pushwatchは、Django / Pythonで自分で開発した無料のオンラインGCMおよびAPNSプッシュ通知テスターで、複数のプロジェクトで作業しているときに同様の状況に陥っています。通知GCM
とAPNS
通知の両方を送信でき、追加の引数のJSONメッセージもサポートします。以下はテスターへのリンクです。
ご質問がある場合や、使用中に問題が発生した場合はお知らせください。
Postmanは優れたソリューションであり、php Fiddleも同様です。ただし、GCM URLとヘッダー情報を毎回入力しないようにするには、この気の利いたGCM通知テストツールを使用することもできます。