sgcWebSockets 2024.9.0 sürümünden itibaren, Google Firebase Cloud Messaging ve en son HTTP v1 API'sini kullanarak Bildirim Göndermek için yeni bir istemci bileşeni vardır.
HTTP ve XMPP için kullanımdan kaldırılan FCM eski API'lerini kullanan uygulamalar, en kısa sürede HTTP v1 API'sine geçmelidir. Bu API'lerle mesaj gönderme (yukarı akış mesajları dahil) 20 Haziran 2023'te kullanımdan kaldırıldı ve kapatma 22 Temmuz 2024'te başlıyor.
Devam eden desteğe ve yeni özelliklere ek olarak, HTTP v1 API'sinin eski API'lere göre şu avantajları vardır:
- Erişim belirteçleri ile daha iyi güvenlik HTTP v1 API'si, OAuth2 güvenlik modeline göre kısa ömürlü erişim belirteçleri kullanır. Bir erişim belirtecinin herkese açık hale gelmesi durumunda, süresi dolmadan önce yalnızca bir saat kadar kötü niyetli olarak kullanılabilir. Yenileme belirteçleri, eski API'de kullanılan güvenlik anahtarları kadar sık iletilmez; bu nedenle yakalanma olasılıkları çok daha düşüktür.
- Platformlar arası mesajların daha verimli özelleştirilmesi Mesaj gövdesi için, HTTP v1 API'si hedeflenen tüm örneklere giden ortak anahtarlara ve mesajı platformlar arasında özelleştirmenize olanak tanıyan platforma özgü anahtarlara sahiptir. Bu, tek bir mesajda farklı istemci platformlarına biraz farklı yükler gönderen "geçersiz kılmalar" oluşturmanıza olanak tanır.
- Yeni istemci platformu sürümleri için daha genişletilebilir ve geleceğe dönük HTTP v1 API'si, Apple platformlarında, Android'de ve Web'de mevcut mesajlaşma seçeneklerini tam olarak destekler. Her platformun JSON yükünde kendi tanımlı bloğu olduğundan, FCM gerektiğinde API'yi yeni sürümlere ve yeni platformlara genişletebilir.
Google FCM Delphi İstemcisi
Firebase Cloud Messaging (FCM), mesajları güvenilir bir şekilde ücretsiz göndermenize olanak tanıyan çok platformlu bir mesajlaşma çözümüdür.
FCM kullanarak, bir istemci uygulamasına senkronize edilecek yeni e-posta veya başka veri olduğunu bildirebilirsiniz. Kullanıcıların yeniden etkileşimini ve elde tutulmasını sağlamak için bildirim mesajları gönderebilirsiniz. Anlık mesajlaşma gibi kullanım senaryolarında, bir mesaj bir istemci uygulamasına 4096 bayta kadar bir yük aktarabilir.
Bileşen, HTTP v1 API'sini destekler.
YetkilendirmeGoogle FCM bileşen istemcisi, Google Sunucularına aşağıdaki yöntemleri kullanarak giriş yapabilir:
- gcaOAuth2: OAuth2 protokolü
- gcaJWT: JWT belirteçleri.
OAuth2
Giriş, kullanıcının kendi kullanıcısıyla giriş yaptığı ve FCM isteklerini yetkilendirdiği bir web tarayıcısı kullanılarak yapılır.
- GoogleCloudOptions.OAuth2.ClientId: OAuth2 protokolü aracılığıyla Kimlik Doğrulaması yapmak için Google tarafından sağlanan ClientID'dir.
- GoogleCloudOptions.OAuth2.ClientSecret: OAuth2 protokolü aracılığıyla Kimlik Doğrulaması yapmak için Google tarafından sağlanan Client Secret dizesidir.
- GoogleCloudOptions.OAuth2.Scope: OAuth2'nin kapsamıdır; varsayılandan daha fazla erişim almanız gerekmedikçe genellikle varsayılan değeri değiştirmeye gerek yoktur.
- GoogleCloudOptions.OAuth2.LocalIP: OAuth2 protokolü, Kimlik Doğrulama sunucusundan yanıt dinleyen bir sunucu gerektirir; bu, IP veya DNS'tir. Varsayılan olarak 127.0.0.1'dir.
- GoogleCloudOptions.OAuth2.LocalPort: Yerel sunucu dinleme portu.
- GoogleCloudOptions.OAuth2.RedirectURL: LocalPort + LocalIP'den farklı bir yönlendirme url'si ayarlamanız gerekirse, bu özellikte ayarlayabilirsiniz (örnek: http://127.0.0.1:8080/oauth2).
Hizmet Hesapları
Giriş, google tarafından sağlanan bir özel anahtar kullanılarak istekler imzalanarak yapılır; bu yöntem, otomatik hizmetler veya kullanıcı etkileşimi olmayan uygulamalar için önerilir.
- GoogleCloudOptions.JWT.ClientEmail: yeni hizmet hesabı oluşturulurken sağlanan Client Email adıdır. JSON yapılandırma dosyasındaki "client_email" düğümü.
- GoogleCloudOptions.JWT.Subject: yeni hizmet hesabı oluşturulurken sağlanan Client Email adıdır. JSON yapılandırma dosyasındaki "client_email" düğümü.
- GoogleCloudOptions.JWT.PrivateKeyId: google tarafından sağlanan Private Key Id'dir. JSON yapılandırma dosyasındaki "private_key_id" düğümü.
- GoogleCloudOptions.JWT.PrivateKey: google tarafından sağlanan Private Key sertifikasıdır. JSON yapılandırma dosyasındaki "private_key" düğümü.
Yeni bir hizmet hesabı oluşturulduğunda, tüm yapılandırmaları içeren bir JSON dosyası indirebilirsiniz. Bu dosya FCM bileşeni tarafından işlenebilir; yalnızca LoadSettingsFromFile metodunu çağırın ve JSON dosya adını argüman olarak iletin.
Örnek
Aşağıda, kimlik doğrulama yöntemi olarak FCM ve JWT kullanarak bildirim göndermeye ilişkin basit bir örnek bulabilirsiniz.
oFCM := TsgcHTTPGoogleCloud_FCM_Client.Create(nil);
oFCM.GoogleCloudOptions.Authorization := gcaJWT;
oFCM.LoadSettingsFromFile('sgcfirebase-7x92e-5c80b8506a6c.json');
oFCM.GoogleCloudOptions.JWT.Subject := GoogleFCM.GoogleCloudOptions.JWT.ClientEmail;
ShowMessage(
oFCM.SendMessage('Project-id',
'{"message": {"topic": "news","notification": ' +
'{"title": "Breaking News",' +
'"body": "New news story available."},"data": {"story_id": "story_12345"}}}')
);
