无需 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_GoogleFCM、TsgcHTTP_API_GoogleCloudPubSub、TsgcHTTP_API_GoogleCalendar、TsgcOAuth2Client、TsgcJWTClient。
带 TLS 1.3 的 HTTPS / HTTP/2、OAuth2 + 服务账号 JWT (RS256)、Bearer 令牌缓存。
Windows、macOS、Linux、iOS、Android、.NET。
sgcOpenAPI 使用任何 Google 发现/OpenAPI 文档并发出 Pascal 客户端类。
TsgcHTTP_API_GoogleFCM——使用现代的基于 OAuth2 的 FCM HTTP v1 API 向 Android、iOS 和 Web 客户端发送推送通知。主题/令牌/条件定向、数据负载、图像/声音/通道覆盖。
TsgcHTTP_API_GoogleCloudPubSub——向主题发布消息、从订阅拉取、确认/拒绝确认、批量发送、带端到端签名信封的推送式 HTTP 订阅。
TsgcHTTP_API_GoogleCalendar——列出日历、CRUD 事件、管理与会者、重复规则、空闲/忙碌查询和 ACL——带 OAuth2 用户同意或服务账号域级委托。
通过 HTTPS 上传/下载对象、签名 URL、可恢复上传和存储桶管理——适用于任何 GCS 存储桶和 S3 兼容互操作。
面向 Gemini 生成式语言模型、嵌入和 Vertex AI 的原生客户端——通过 SSE 流式传输、函数调用、JSON 模式结构化输出。
通过 sgcOpenAPI 生成的 SDK——OAuth2 + 适当的 Workspace 范围为您提供每个端点的 Pascal 类。
地理编码、方向、距离矩阵、地点和道路——HTTPS + API 密钥或 OAuth2。
sgcOpenAPI 为发布 OpenAPI 文档的任何 Google REST API 发出 Pascal 客户端类——Compute Engine、BigQuery、Cloud Functions、Cloud Run、Secret Manager 等。
大多数 Google Cloud API 接受两种形式的凭据:服务账号 JSON 密钥(在 oauth2.googleapis.com/token 处交换 RS256 签名的 JWT 以获取短期 bearer 令牌,无需用户交互)和带标准授权码或设备码流的 OAuth2 客户端,用于最终用户数据(Calendar、Drive、Gmail)。sgcWebSockets 涵盖了这两种:TsgcJWTClient 签署断言,TsgcOAuth2Client 驱动用户流,每个服务组件使用您接入的任何凭据。令牌在内存中缓存,并在到期之前刷新,因此您的应用代码永远不会遇到 401。
一个 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;
将 sgcWebSockets 放入您的 Delphi 或 C++Builder IDE——Delphi 7 至 13 的每个版本一个包。下载试用版。
在 Google Cloud 控制台中,创建一个服务账号,授予正确的角色(例如 Pub/Sub 发布者、Firebase 消息管理员),并下载 JSON 密钥。
对于 FCM 使用 TsgcHTTP_API_GoogleFCM,对于 Pub/Sub 使用 TsgcHTTP_API_GoogleCloudPubSub,对于 Calendar 使用 TsgcHTTP_API_GoogleCalendar——或使用 sgcOpenAPI 生成自定义 SDK。
sgcWebSockets 如何向 Pascal 开发者公开 Google Cloud 界面的概述。
现代 FCM API 的分步演练以及它如何取代旧服务器密钥。
使用 Pub/Sub 组件发布、拉取和确认消息。
从 VCL 或 FMX 应用程序创建和更新事件。
何时使用 API 密钥、OAuth2 与服务账号凭据。