Firebase Cloud Messaging (FCM)
从 Delphi 发送 Firebase Cloud Messaging V1 推送通知。单一组件内置服务账号 JWT 签名、OAuth 2.0 令牌交换和类型化 FCM 消息构建。
从 Delphi 发送 Firebase Cloud Messaging V1 推送通知。单一组件内置服务账号 JWT 签名、OAuth 2.0 令牌交换和类型化 FCM 消息构建。
FCM HTTP V1 客户端 — 加载 Google 服务账号 JSON,签署 RS256 JWT,换取 OAuth 访问令牌,并将 FCM 消息 POST 到 fcm.googleapis.com/v1/projects/<id>/messages:send。
TsgcHTTPGoogleCloud_FCM_Client
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)。
Access tokens are cached and refreshed only when expired, so high-volume senders don't hammer the OAuth endpoint.
Uses the project's standard HTTP client — pair with proxies, TLS settings and rate limiters as you would any other HTTP request.
OnSendError 报告 HTTP 和 FCM 特定错误(未注册令牌、无效参数、配额超限),便于清除无效令牌或实施退避。
本组件所实现 API 的权威来源。