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——消息、存储、队列、身份、地图、机器学习、生产力(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)、Bearer 令牌缓存。

平台

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——向主题发布消息、从订阅拉取、确认/拒绝确认、批量发送、带端到端签名信封的推送式 HTTP 订阅。

Google Calendar API v3

TsgcHTTP_API_GoogleCalendar——列出日历、CRUD 事件、管理与会者、重复规则、空闲/忙碌查询和 ACL——带 OAuth2 用户同意或服务账号域级委托。

Google Cloud Storage

通过 HTTPS 上传/下载对象、签名 URL、可恢复上传和存储桶管理——适用于任何 GCS 存储桶和 S3 兼容互操作。

Google AI 与 Gemini

面向 Gemini 生成式语言模型、嵌入和 Vertex AI 的原生客户端——通过 SSE 流式传输、函数调用、JSON 模式结构化输出。

Google Drive、Gmail、Sheets、Docs

通过 sgcOpenAPI 生成的 SDK——OAuth2 + 适当的 Workspace 范围为您提供每个端点的 Pascal 类。

Google Maps Platform

地理编码、方向、距离矩阵、地点和道路——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 接受两种形式的凭据:服务账号 JSON 密钥(在 oauth2.googleapis.com/token 处交换 RS256 签名的 JWT 以获取短期 bearer 令牌,无需用户交互)和带标准授权码或设备码流的 OAuth2 客户端,用于最终用户数据(Calendar、Drive、Gmail)。sgcWebSockets 涵盖了这两种:TsgcJWTClient 签署断言,TsgcOAuth2Client 驱动用户流,每个服务组件使用您接入的任何凭据。令牌在内存中缓存,并在到期之前刷新,因此您的应用代码永远不会遇到 401。

从 Delphi 发送 FCM 推送

一个 25 行的代码片段,使用服务账号 JSON 密钥进行身份验证并向单个设备令牌推送通知。

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 全球分布式的至少一次消息传递结构——无数事件驱动架构的支柱。同一服务账号凭据驱动两端;发布者将消息 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 调用

1. 安装

将 sgcWebSockets 放入您的 Delphi 或 C++Builder IDE——Delphi 7 至 13 的每个版本一个包。下载试用版

2. 创建服务账号

在 Google Cloud 控制台中,创建一个服务账号,授予正确的角色(例如 Pub/Sub 发布者Firebase 消息管理员),并下载 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 密钥、OAuth2 与服务账号凭据。

今天就在您的 Delphi 应用中发布 Google Cloud 集成

下载试用版——FCM、Pub/Sub 和 Calendar 演示随附即可编译。