1. ホーム
  2. android

[解決済み] Androidです。Google Cloud Messagingのプッシュ通知テスト [終了しました] (英語)

2023-01-14 23:52:28

質問

更新しました。 GCM は非推奨です。 FCM

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

どのように解決するのでしょうか。

とても簡単な方法を見つけました。

開く http://phpfiddle.org/

以下の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