[解決済み] Androidです。Google Cloud Messagingのプッシュ通知テスト [終了しました] (英語)
質問
私は自分のアプリケーションに Google Cloud Messaging を実装しています。サーバー コードはまだ準備ができておらず、私の環境では、ファイアウォールの制限のため、プッシュ通知のテスト サーバーをデプロイすることができません。私が探しているのは、私のクライアント実装をテストするために、私のデバイスにいくつかのテスト通知を送信するオンライン サーバーです。
どのように解決するのでしょうか。
とても簡単な方法を見つけました。
以下の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 Developer Console で 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
関連
-
[解決済み】google-services.jsonで異なるproductFlavorsを指定する場合
-
[解決済み】Firebase Console を使用せずに Firebase Cloud Messaging 通知を送信するには?
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] ViewPagerのアイテムを強制的に再インスタンス化する方法 [重複].
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] react nativeアプリのバージョン番号を更新する方法
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] ViewPagerのアイテムを強制的に再インスタンス化する方法 [重複].
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] グリッドビューの高さが削減される
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?
-
[解決済み] FABアイコンの色を設定する