Firebase Cloud Messaging (FCM)

Delphi から Firebase Cloud Messaging V1 プッシュ通知を送信できます。サービスアカウント JWT 署名、OAuth 2.0 トークン交換、型付き FCM メッセージの構築を 1 つのコンポーネントで実現します。

TsgcHTTPGoogleCloud_FCM_Client

FCM HTTP V1 クライアントです。Google サービスアカウント JSON を読み込み、RS256 JWT に署名し、OAuth アクセストークンと交換した後、FCM メッセージを fcm.googleapis.com/v1/projects/<id>/messages:send に POST します。

コンポーネントクラス

TsgcHTTPGoogleCloud_FCM_Client

プロトコル

Firebase Cloud Messaging

対応プラットフォーム

Windows, macOS, Linux, iOS, Android

エディション

Standard / Professional / Enterprise

サービスアカウントを読み込み、プッシュを送信する

Firebase サービスアカウント JSON を読み込み、プロジェクト ID を設定した後、FCM ペイロード(トークン / トピック / 条件)を指定して SendMessage を呼び出してください。

uses
  sgcHTTP;

var
  FCM: TsgcHTTPGoogleCloud_FCM_Client;
begin
  FCM := TsgcHTTPGoogleCloud_FCM_Client.Create(nil);
  FCM.GoogleCloudOptions.ServiceAccountJSON.LoadFromFile('service-account.json');

  FCM.SendMessage(
    'fcm-device-token-here',
    'Hello from Delphi',
    'This is a test FCM push');
end;
// uses: sgcHTTP
TsgcHTTPGoogleCloud_FCM_Client *FCM = new TsgcHTTPGoogleCloud_FCM_Client(this);
FCM->GoogleCloudOptions->ServiceAccountJSON->LoadFromFile("service-account.json");

FCM->SendMessage(
  "fcm-device-token-here",
  "Hello from Delphi",
  "This is a test FCM push");

主な機能

FCM HTTP v1 エンドポイントを対象としています。旧来の fcm.googleapis.com/fcm/send エンドポイントは Google によって廃止されました。

サービスアカウント認証

標準の Firebase サービスアカウント JSON を読み込み、含まれている秘密鍵で RS256 JWT に署名し、oauth2.googleapis.com/token でアクセストークンと交換します。

トークン / トピック / 条件への送信

SendMessage のオーバーロードは、登録トークン、トピック名(/topics/news)またはトピック条件式を受け付けます。SendBroadcast はファンアウト配信のためのトピックをターゲットとします。

通知 + データペイロード

notification オブジェクト(タイトル / ボディ / 画像)と自由形式の data 辞書の両方を使用できます。プラットフォーム固有のオーバーライド(Android: android、iOS: apns、Web: webpush)も含みます。

トークンのキャッシュ

アクセストークンはキャッシュされ、期限切れ時にのみリフレッシュされるため、大量送信者が OAuth エンドポイントに過負荷をかけることがありません。

HTTP トランスポート

プロジェクトの標準 HTTP クライアントを使用します。他の HTTP リクエストと同様に、プロキシ、TLS 設定、レートリミッターと組み合わせて使用できます。

型付きエラー

OnSendError は HTTP および FCM 固有のエラー(未登録トークン、無効な引数、クォータ超過)を報告するため、無効なトークンを削除したりリトライを制御したりできます。

仕様・参考資料

このコンポーネントが実装する API の公式ソースです。

ドキュメント・デモ

コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。

オンラインヘルプ — FCM クライアント このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\20.HTTP_Protocol\03.Google すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。
技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。
ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。

Delphi から FCM プッシュ通知を送信してみませんか?

体験版をダウンロードして、Firebase Cloud Messaging を Delphi アプリケーションに統合してください。