Delphi Google Cloud SDK — FCM, Pub/Sub, Calendar & more

Google Cloud platformu için tutarlı bir Pascal bileşen kümesi: Firebase Cloud Messaging HTTP v1 ile mobil bildirimler gönderin, Cloud Pub/Sub'da mesaj çekin / yayınlayın, Google Calendar'da etkinlikler zamanlayın, herhangi bir GCP hizmeti için hizmet hesabı JWT'leri imzalayın ve herhangi bir Google API'si için discovery / OpenAPI belgesinden güçlü tipli istemciler oluşturun. Tümü sgcWebSockets'ten.

Her GCP yüzeyi için yerel bileşenler

Python google-cloud bağlamaları yok, Java JDK yok, Node.js köprüsü yok. Yalnızca Google'ın uç noktalarıyla doğrudan HTTPS, HTTP/2 ve OAuth2 konuşan Delphi bileşenleri.

Google Cloud Platform yüzlerce REST API'si sunar: mesajlaşma, depolama, kuyruklama, kimlik, haritalama, makine öğrenimi, üretkenlik (Calendar, Drive, Gmail, Docs), reklamcılık, analiz, faturalandırma ve daha fazlası. Şimdiye kadar bunları Delphi'den çağırmak, JWT imzalayıcıları, OAuth2 belirteç yenileyicileri, çok parçalı yükleyiciler ve SSE ayrıştırıcıları elle yazmak anlamına geliyordu. sgcWebSockets en yaygın yüzeyler için birinci sınıf bileşenler sunar: Firebase Cloud Messaging HTTP v1 için TsgcHTTP_API_GoogleFCM, Cloud Pub/Sub için TsgcHTTP_API_GoogleCloudPubSub, Calendar API v3 için TsgcHTTP_API_GoogleCalendar. Ayrıca diğer her Google uç noktasını yöneten yeniden kullanılabilir OAuth2 + hizmet-hesabı-JWT altyapısı ve uzun kuyruk için sgcOpenAPI kod üreteci.

Kimlik doğrulama tek tiptir: bir Google Cloud projesi, bir hizmet hesabı JSON anahtarı (veya son kullanıcı akışları için bir OAuth2 istemcisi) ve uygun https://www.googleapis.com/auth/... kapsamları. Kütüphanenin JWT imzalayıcısı onaylamayı oluşturur, oauth2.googleapis.com/token'dan bir erişim belirteci ister ve bunu şeffaf bir şekilde önbelleğe alır / yeniler. Aynı kod, hem VCL hem de FMX UI katmanlarıyla Windows, macOS, Linux, iOS ve Android üzerinde değiştirilmeden çalışır.

Çekirdek bileşenler

TsgcHTTP_API_GoogleFCM, TsgcHTTP_API_GoogleCloudPubSub, TsgcHTTP_API_GoogleCalendar, TsgcOAuth2Client, TsgcJWTClient.

Taşıma

HTTPS / HTTP/2 with TLS 1.3, OAuth2 + service-account JWT (RS256), Bearer-token caching.

Platformlar

Windows, macOS, Linux, iOS, Android, .NET.

Kod üreteci

sgcOpenAPI consumes any Google discovery / OpenAPI document and emits Pascal client classes.

Birinci sınıf sarmalayıcılar + oluşturulan SDK'lar

Firebase Cloud Messaging (HTTP v1)

TsgcHTTP_API_GoogleFCM — modern OAuth2 tabanlı FCM HTTP v1 API'siyle Android, iOS ve web istemcilerine push bildirimleri gönderin. Konu / belirteç / koşul hedefleme, veri yükleri, görsel / ses / kanal geçersiz kılmaları.

Cloud Pub/Sub

TsgcHTTP_API_GoogleCloudPubSub — konulara mesaj yayınlayın, aboneliklerden çekin, ack / nack, toplu gönderme, uçtan uca imzalı zarflarla push tarzı HTTP abonelikleri.

Google Calendar API v3

TsgcHTTP_API_GoogleCalendar — takvimleri listeleyin, etkinlikleri oluşturun/okuyun/güncelleyin/silin, katılımcıları yönetin, yinelenen kurallar, müsait/meşgul sorguları ve ACL'ler. OAuth2 kullanıcı onayı veya hizmet hesabı etki alanı genelinde yetki devri ile.

Google Cloud Storage

HTTPS üzerinden nesne yükleme / indirme, imzalı URL'ler, devam ettirilebilir yüklemeler ve bucket yönetimi. Herhangi bir GCS bucket'ı ve S3 uyumlu birlikte çalışmayla çalışır.

Google AI ve Gemini

Gemini üretken dil modelleri, embeddings ve Vertex AI için yerel istemci. SSE üzerinden akış, işlev çağrısı, JSON modu yapılandırılmış çıktılar.

Google Drive, Gmail, Sheets, Docs

sgcOpenAPI ile oluşturulan SDK'lar. OAuth2 + uygun Workspace kapsamları size her uç nokta için Pascal sınıfları verir.

Google Maps Platform

Coğrafi kodlama, yol tarifleri, mesafe matrisi, yerler ve yollar. HTTPS + API anahtarı veya OAuth2.

Oluşturulan Google Cloud SDK'ları

sgcOpenAPI, bir OpenAPI belgesi yayımlayan herhangi bir Google REST API'si için Pascal istemci sınıfları üretir: Compute Engine, BigQuery, Cloud Functions, Cloud Run, Secret Manager ve benzerleri.

OAuth2 + hizmet hesabı JWT, sunucu tarafı

Çoğu Google Cloud API'si iki kimlik bilgisi biçimi kabul eder: bir hizmet hesabı JSON anahtarı (kullanıcı etkileşimi olmadan kısa ömürlü bir bearer belirteci için oauth2.googleapis.com/token'da değiş tokuş edilen RS256 imzalı JWT) ve son kullanıcı verileri (Calendar, Drive, Gmail) için standart yetkilendirme kodu veya cihaz kodu akışıyla bir OAuth2 istemcisi. sgcWebSockets her ikisini de kapsar: TsgcJWTClient onaylamayı imzalar, TsgcOAuth2Client kullanıcı akışını yönetir ve hizmet başına bileşenler hangi kimlik bilgisini bağlarsanız onu tüketir. Belirteçler bellekte önbelleğe alınır ve süresi dolmadan yenilenir, böylece uygulama kodunuz hiçbir zaman bir 401 ile karşılaşmaz.

Delphi'den bir FCM push gönderin

Bir hizmet hesabı JSON anahtarıyla kimlik doğrulayan ve tek bir cihaz belirtecine bildirim gönderen 25 satırlık bir kod parçası.

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;

Mesaj yayınlayın ve çekin

Cloud Pub/Sub, Google'ın küresel olarak dağıtılmış, en az bir kez mesajlaşma dokusudur. Sayısız olay tabanlı mimarinin omurgasıdır. Aynı hizmet hesabı kimlik bilgisi her iki ucu da yönetir; yayıncılar bir konuya mesaj POST eder, aboneler ya bir programa göre çeker ya da bir HTTPS uç noktasında push teslimatlarını kabul eder.

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;

İlk GCP çağrınıza üç adım

1. Kurun

sgcWebSockets'i Delphi veya C++Builder IDE'nize bırakın. Delphi 7'den 13'e her sürüm için bir paket. Denemeyi indirin.

2. Bir hizmet hesabı oluşturun

Google Cloud konsolunda, bir hizmet hesabı oluşturun, doğru rolleri (örneğin Pub/Sub Publisher, Firebase Messaging Admin) verin ve JSON anahtarını indirin.

3. Bir bileşen bırakın

FCM için TsgcHTTP_API_GoogleFCM, Pub/Sub için TsgcHTTP_API_GoogleCloudPubSub, Calendar için TsgcHTTP_API_GoogleCalendar kullanın veya sgcOpenAPI ile özel bir SDK oluşturun.

İlgili blog yazıları

Delphi Google Cloud SDK

sgcWebSockets'in Google Cloud yüzeyini Pascal geliştiricilerine nasıl sunduğuna genel bakış.

Delphi'de Firebase Cloud Messaging HTTP v1

Modern FCM API'sinin adım adım anlatımı ve eski sunucu anahtarının yerini nasıl aldığı.

Google Cloud Pub/Sub Delphi bileşeni

Pub/Sub bileşeniyle mesaj yayınlayın, çekin ve onaylayın.

Google Calendar API v3

Bir VCL veya FMX uygulamasından etkinlikler oluşturun ve güncelleyin.

Google API anahtarı + OAuth2

API anahtarı, OAuth2 ve hizmet hesabı kimlik bilgilerinin ne zaman kullanılacağı.

Google Cloud entegrasyonlarını bugün Delphi uygulamanızda yayınlayın

Denemeyi indirin. FCM, Pub/Sub ve Calendar demoları derlemeye hazır gelir.