FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

サーバからプッシュ通知を送信しよう【PHP編】

f:id:mbaasdevrel:20190122153930p:plain プッシュ通知を送信する場合、管理画面からビジュアル的に行う方法とAPI経由で送信する方法の二種類があります。一回送信するだけであれば管理画面から行うので十分ですが、自動化しようと思ったらAPI経由で行う方が効率的です。

サーバからプッシュ通知を送る場合、プログラミング言語は多彩に選択できます。今回はWebアプリケーションで最もよく使われているPHPを使う方法を紹介します。

PHP SDKのインストール

非公式ですがPHP SDKを提供していますのでこれを使うのが最も簡単です。まずPHPのライブラリ管理として一般的なcomposer用のファイル composer.json を用意します。

{ 
   "require" : {
     "ncmbmania/php-ncmb": "*"
   }
}

そしてライブラリをインストールします。

$ composer install

これでインストール完了です。

コードについて

初期化処理

まずアプリケーションキー、クライアントキーを使った初期化処理です。 $applicationKey および $clientKey はそれぞれ自分のものを適用してください。そして NCMB::initialize を実行して初期化します。

require("vendor/autoload.php");

use Ncmb\NCMB;
NCMB::initialize($applicationKey, $clientKey);

プッシュ通知の送信

プッシュ通知を送信する場合には Ncmb\Push を使います。

use Ncmb\Push;

そして Push::Send に対して条件を指定します。

Push::Send(array(
  "immediateDeliveryFlag" => true,
  "target" => array('ios', 'android'),
  "message" => "Hello NCMB"
));

これでプッシュ通知が送信できます。

Fatal error: Uncaught Error: [] operator not supported for stringsが出る場合

送信しようとして Fatal error: Uncaught Error: [] operator not supported for strings というエラーが出る場合には vendor/ncmbmania/php-ncmb/src/Ncmb/ApiClient.php を修正します。

// 元
$encoded_params = '';

// 修正後
$encoded_params = [];

これでエラーが出なくなるはずです。


PHP SDKはParse SDKに似たAPIとなっています。PHP Developers Guide | Parse が参考になるはずです。細かな操作についてはソースコードを見てもらう方が早いかも知れません。

NCMBMania/php-ncmb: NIFCLOUD mobile backend SDK for PHP

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。