Delphi Google Cloud SDK — FCM、Pub/Sub、Calendar その他

Google Cloud プラットフォーム向けの一貫した Pascal コンポーネントセット: Firebase Cloud Messaging HTTP v1 でモバイル通知をプッシュ、Cloud Pub/Sub でメッセージをプル/発行、Google Calendar でイベントをスケジュール、任意の GCP サービス用のサービスアカウント JWT に署名、任意の Google API のディスカバリー/OpenAPI ドキュメントから強く型付けされたクライアントを生成 — すべて sgcWebSockets から。

すべての GCP 面のためのネイティブコンポーネント

Python google-cloud バインディング不要、Java JDK 不要、Node.js ブリッジ不要 — Google のエンドポイントに直接 HTTPS、HTTP/2、OAuth2 を話す Delphi コンポーネントだけ。

Google Cloud Platform は数百の REST API — メッセージング、ストレージ、キューイング、ID、マッピング、機械学習、生産性(Calendar、Drive、Gmail、Docs)、広告、分析、課金など — を公開しています。これまで Delphi からの呼び出しは、JWT 署名者、OAuth2 トークンリフレッシャー、マルチパートアップローダー、SSE パーサーを手書きすることを意味しました。sgcWebSockets は最も一般的な面に対する第一級コンポーネントを出荷します — Firebase Cloud Messaging HTTP v1 用の TsgcHTTP_API_GoogleFCM、Cloud Pub/Sub 用の TsgcHTTP_API_GoogleCloudPubSub、Calendar API v3 用の TsgcHTTP_API_GoogleCalendar — 加えて、他のすべての Google エンドポイントを駆動する再利用可能な OAuth2 + サービスアカウント JWT インフラと、ロングテール用の sgcOpenAPI コードジェネレーター。

認証は統一されています: Google Cloud プロジェクト、サービスアカウント JSON キー(またはエンドユーザーフロー用の OAuth2 クライアント)、適切な https://www.googleapis.com/auth/... スコープ。ライブラリの JWT 署名者はアサーションを構築し、oauth2.googleapis.com/token からアクセストークンを要求し、透過的にキャッシュ/更新します。同じコードが変更なしで Windows、macOS、Linux、iOS、Android で、VCL と FMX UI 層の両方で動作します。

コアコンポーネント

TsgcHTTP_API_GoogleFCMTsgcHTTP_API_GoogleCloudPubSubTsgcHTTP_API_GoogleCalendarTsgcOAuth2ClientTsgcJWTClient

トランスポート

TLS 1.3 付き HTTPS / HTTP/2、OAuth2 + サービスアカウント JWT(RS256)、ベアラートークンキャッシング。

プラットフォーム

Windows、macOS、Linux、iOS、Android、.NET。

コードジェネレーター

sgcOpenAPI は任意の Google ディスカバリー/OpenAPI ドキュメントを消費し、Pascal クライアントクラスを出力します。

第一級ラッパー + 生成 SDK

Firebase Cloud Messaging(HTTP v1)

TsgcHTTP_API_GoogleFCM — モダンな OAuth2 ベースの FCM HTTP v1 API で Android、iOS、Web クライアントにプッシュ通知を送信。トピック/トークン/条件ターゲティング、データペイロード、画像/サウンド/チャネルオーバーライド。

Cloud Pub/Sub

TsgcHTTP_API_GoogleCloudPubSub — トピックへのメッセージ発行、購読からのプル、ack / nack、バッチ送信、エンド・ツー・エンド署名済みエンベロープ付きのプッシュスタイル HTTP 購読。

Google Calendar API v3

TsgcHTTP_API_GoogleCalendar — カレンダーの一覧表示、イベントの CRUD、参加者管理、繰り返しルール、free/busy クエリ、ACL — OAuth2 ユーザー同意またはサービスアカウントのドメインワイド委任で。

Google Cloud Storage

HTTPS 経由のオブジェクトのアップロード/ダウンロード、署名済み URL、再開可能アップロード、バケット管理 — 任意の GCS バケットと S3 互換相互運用で動作。

Google AI と Gemini

Gemini 生成言語モデル、embeddings、Vertex AI 用のネイティブクライアント — SSE 上のストリーミング、関数呼び出し、JSON モード構造化出力。

Google Drive、Gmail、Sheets、Docs

sgcOpenAPI 経由の生成 SDK — OAuth2 + 適切な Workspace スコープがすべてのエンドポイント用の Pascal クラスを提供します。

Google Maps Platform

Geocoding、directions、distance matrix、places、roads — HTTPS + API キーまたは OAuth2。

生成 Google Cloud SDK

sgcOpenAPI は OpenAPI ドキュメントを公開する任意の Google REST API 用の Pascal クライアントクラスを出力します — Compute Engine、BigQuery、Cloud Functions、Cloud Run、Secret Manager 他。

OAuth2 + サービスアカウント JWT、サーバー側

ほとんどの Google Cloud API は 2 つの形式の資格情報を受け入れます: サービスアカウント JSON キーoauth2.googleapis.com/token で短寿命ベアラートークンと交換される RS256 署名 JWT、ユーザー操作なし)と、エンドユーザーデータ(Calendar、Drive、Gmail)用の標準的な認証コードまたはデバイスコードフロー付き OAuth2 クライアント。sgcWebSockets は両方をカバーします: TsgcJWTClient がアサーションに署名し、TsgcOAuth2Client がユーザーフローを駆動し、サービスごとのコンポーネントが結線した資格情報を消費します。トークンはメモリにキャッシュされ、期限前に更新されるため、アプリケーションコードは 401 に触れません。

Delphi から FCM プッシュを送信

サービスアカウント JSON キーで認証し、単一のデバイストークンに通知をプッシュする 25 行のスニペット。

uses
  sgcHTTP_API_GoogleFCM, sgcHTTP_API_GoogleFCM_Types;

var
  vFCM:     TsgcHTTP_API_GoogleFCM;
  vMessage: TsgcGoogleFCMMessage;
begin
  vFCM := TsgcHTTP_API_GoogleFCM.Create(nil);
  try
    vFCM.ProjectId            := 'my-firebase-project';
    vFCM.ServiceAccountFile   := 'C:\keys\my-project-fcm.json';

    vMessage := TsgcGoogleFCMMessage.Create;
    try
      vMessage.Token             := 'eXampleDeviceTokenFromAndroidOrIOSClient...';
      vMessage.Notification.Title := 'New order';
      vMessage.Notification.Body  := 'Order #1234 has been confirmed.';
      vMessage.Data.AddPair('orderId', '1234');
      vMessage.Android.Priority   := fpHigh;

      vFCM.SendMessage(vMessage);
    finally
      vMessage.Free;
    end;
  finally
    vFCM.Free;
  end;
end;

メッセージを発行してプル

Cloud Pub/Sub は Google のグローバル分散、at-least-once メッセージングファブリック — 無数のイベント駆動アーキテクチャのバックボーンです。同じサービスアカウント資格情報が両端を駆動します。発行者はトピックにメッセージを POST し、購読者はスケジュールでプルするか HTTPS エンドポイント上のプッシュ配信を受け入れます。

uses
  sgcHTTP_API_GoogleCloudPubSub;

var
  vPubSub: TsgcHTTP_API_GoogleCloudPubSub;
begin
  vPubSub := TsgcHTTP_API_GoogleCloudPubSub.Create(nil);
  try
    vPubSub.ProjectId          := 'my-project';
    vPubSub.ServiceAccountFile := 'C:\keys\my-project-pubsub.json';

    // Publish
    vPubSub.Publish('orders', '{"orderId":1234,"total":42.50}');

    // Pull
    vPubSub.OnMessageReceived := DoMessageReceived;
    vPubSub.Subscribe('orders-worker');  // long-running pull loop
  finally
    vPubSub.Free;
  end;
end;

最初の GCP 呼び出しまでの 3 ステップ

1. インストール

sgcWebSockets を Delphi または C++Builder IDE にドロップ — Delphi バージョン 7 から 13 までパッケージ 1 つずつ。トライアルをダウンロード

2. サービスアカウントを作成

Google Cloud コンソールで、サービスアカウントを作成し、適切なロール(例: Pub/Sub PublisherFirebase Messaging Admin)を付与し、JSON キーをダウンロード。

3. コンポーネントをドロップ

FCM には TsgcHTTP_API_GoogleFCM、Pub/Sub には TsgcHTTP_API_GoogleCloudPubSub、Calendar には TsgcHTTP_API_GoogleCalendar を使用 — または sgcOpenAPI でカスタム SDK を生成。

関連ブログ投稿

Delphi Google Cloud SDK

sgcWebSockets が Pascal 開発者に Google Cloud 面をどう公開するかの概要。

Delphi での Firebase Cloud Messaging HTTP v1

モダンな FCM API のステップバイステップウォークスルーと、レガシーサーバーキーをどう置き換えるか。

Google Cloud Pub/Sub Delphi コンポーネント

Pub/Sub コンポーネントでメッセージを発行、プル、確認応答。

Google Calendar API v3

VCL または FMX アプリケーションからイベントを作成および更新。

Google API キー + OAuth2

API キー vs OAuth2 vs サービスアカウント資格情報をいつ使うか。

今日 Delphi アプリに Google Cloud 統合を出荷

トライアルをダウンロード — FCM、Pub/Sub、Calendar デモはコンパイル準備済みで同梱。