■Android: アプリにPHPからPushを送信
■Firebase Admin SDKのインストール
Add the Firebase Admin SDK to Your Server
https://firebase.google.com/docs/admin/setup
公式サイトにはPHPはないので、以下を使用する。PHP7以上のみ対応
https://github.com/kreait/firebase-php/
ドキュメント
https://firebase-php.readthedocs.io/en/latest/
以下のように、ComposerでSDKをインストールできる
$ cd /path/to/directory
$ curl -sS
https://getcomposer.org/installer | php
$ php composer.phar require kreait/firebase-php
■秘密鍵の入手
Firebaseのプロジェクトの設定ページで対象のアプリをクリックし、表示された歯車アイコンをクリック
サービスアカウント → 新しいサービスアカウント作成 → 新しい秘密鍵の生成 → キーを生成
「Admin SDK 構成スニペット」に「PHP」が無いので「Node.js」のままで秘密鍵の生成を行ってみる
push-test-54dbc-firebase-adminsdk-8cdmf-17691c7f2a.json
のような名前のファイルがダウンロードされる
このファイルとデバイストークンを使って、直接プッシュを送信できる
■プログラムの作成
※ファイルの文字コードは UTF-8N にする
<?php
require __DIR__ . '/vendor/autoload.php';
use Kreait\Firebase;
use Kreait\Firebase\Messaging\CloudMessage;
// 秘密鍵
$serviceAccount = Firebase\ServiceAccount::fromJsonFile(__DIR__ . '/push-test-54dbc-firebase-adminsdk-8cdmf-17691c7f2a.json');
// Firebaseに接続
$firebase = (new Firebase\Factory)
->withServiceAccount($serviceAccount)
->create();
// プッシュ送信先のデバイストークン
$deviceToken = 'cniQkqpYVmU:APA91bHnz0c_5Wfnd6kJV-gItvjDMcnFo8Yh4XG2BTfs5weZpLkdduOEIr2tEryacHwEKUppYEee-XHjAYgG2pSVM15cYM_EB55z2OGUtdRoL_2TGVTix5Vx9r2lnYovC6y3xUubf_ij';
// プッシュの送信メッセージ
$message = CloudMessage::fromArray([
'token' => $deviceToken,
'data' => ['message' => 'TEST'],
'notification' => [
'title' => 'テスト',
'body' => 'これはプッシュ送信のテストです。',
],
]);
// メッセージを送信
$messaging = $firebase->getMessaging();
$messaging->send($message);
print('OK');
■動作確認
作成したPHPプログラムにアクセスして、アプリにプッシュが届くことを確認する