Delphi Can
FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) (/showthread.php?tid=8105)



FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) - RAD Coder - 10-04-2025

Google FCM ile push notification göndermek için önceden klasik (legacy) server key ve api key'ler kullanılıyordu. Bu yöntemin kullanımı kolay olmasının yanında, güvenlik riski barındırıyordu. 
Bu nedenle 22 Temmuz 2024 tarihinden başlamak üzere tüm Google Cloud API'lere, Auth2.0 güvenlik protokolü ile istek yapılmasını zorunlu hale getirdi.
FCM ile push notification gönderme yöntemi de bu işten nasibini aldı. 
FCM v1 API servisi etkinleştirilince eski kullanım yöntemi de ortadan kaldırılmış oldu. 

Aşağıdaki linkte bu geçişin nasıl yapılacağı detaylı bir şekilde anlatılmış.
Migrate from legacy FCM APIs to HTTP v1

Bu kılavuza göre; 
  - RS256 hash algoritmasına göre JWT Token üretilmeli
  - Yeni bir erişim token'ı (Access token) alınmalı
  - Tüm istekler, header'da Bearer + access token olacak şekilde yapılmalı.

Tüm bu süreçleri %100 Delphi kodu ile yapacak şekilde uzun soluklu bir çalışmam oldu. 
Çalışmalarım neticesinde, yukarıda belirttiğim tüm işlem adımlarını gerçekleştiren bir demo ortaya çıkardım. 
FCM console ve Apple developer hesap üzenindeki tanımlamalar, demo uygulama ve fonksiyonları, entegrasyon süreci ve doğrudan eğitim/canlı bağlantı ile ücretli bir destek vermeyi düşünüyorum.
Ücretlendirme ilk altı madde tek paket ve iki opsiyonel paket olmak üzere yapılacaktır. Opsiyonel olan maddeler kendi içinde ayrı ayrı üclendirilecektir. 
ÖM ile aşağıdaki maddelerden hangilerini kapsayacak destek talebinizin olduğunu yazarak fiyat isteyebilirsiniz.  
Yapılacak iş/işlemler aşağıda detaylı olarak yazılmıştır.  

Firebase Cloud Messaging (FCM) v1 API Servisini Kullanmak (OAuth2.0 ile)
1- FCM servis kullanıcı dosyasını (service account file) okuyarak, proje bilgilerini almak.
2- Lokalde (kişisel bilgisayar veya kişisel sunucu üzerinde), RS256 hash algoritmasına göre JWT Token (Refresh Token) üretilmek.
3- Refresh token ile FCM servislerine erişmek için gerekli olan Access Token bilgisini almak. 
4- Acces token ile Push Notification göndermek.
5- Access token ile iOS push notification token değerinin (APNs token), FCM token değerine dönüştürülmesi.
6- FCM console üzerinden kullanıcı servis dosyasının oluşturulması (Application Default Credentials (ADC) işlemleri) ve indirilmesi (Opsiyonel-1.1 tamamlanmış olmalı).

Opsiyonel-1
1- FCM console üzerinden Android ve iOS Push Notification tanımlamaları yapmak (Uygulama PN ayarları ve Apple Developer PN tanımlamaları yapılmış olmalı).
2- Apple Developer hesabı üzerinden, iOS Push Notification tanımlamaları, sertifikasyonu ve provizyonlarının oluşturulması.

Opsiyonel-2
1- Demo uygulamada yer alan fonksiyonların projeniz üzerine entegrasyonu.
2- Demo uygulamada yer alan Refresh Token alma işleminin REST API olarak yayınlanması ve REST API'den istekle refresh token alınması.
3- Mobil uygulamadan, cihaz UUID ve Token değerinin alınması (Opsiyonel-1 deki, 1 ve 2. madde tamamlanmış olmalı). 

Notlar
1- Tüm kaynak kodlar tamamen Delphi ile yazılmıştır. Harici kütüphane olarak açık kaynak kodlu JWT kütüphanesi kullanılmıştır.
2- Pratik olması açısından tüm işlemler tek bir uygulama gövdesi üzerinden gerçekleştirilecek şekilde hazırlandı.
3- İçerik; 1 adet demo uygulama ve yarım saatlik eğitim/anlatım (opsiyonel tercihinde toplamda 2 saat eğitim). 
4- Belirtilen saatlerin üzerindeki online çalışmalar ayrıca ücrete tabidir.


Cvp: FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) - RAD Coder - 11-04-2025

Konu yanlış anlaşılmış olabilir;
Eğitim seti değil. Push notification sisteminin başta sona projenize dahil edilmesini kapsayan süreçte telefon görüşmeleri, online uzaktan bağlantı ile işlem yapma ve kodun anlatımını kapsar. 
Aynı zamanda Push notificatin örnek uygulamasını içerir.


FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) - shooterman - 11-04-2025

Hocam, örnek uygulamayı verecek misiniz yoksa sadece bir exe olarak mı teslim edeceksiniz?


Cvp: FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) - RAD Coder - 11-04-2025

(11-04-2025, Saat: 14:43)shooterman Adlı Kullanıcıdan Alıntı: Hocam, örnek uygulamayı verecek misiniz yoksa sadece bir exe olarak mı teslim edeceksiniz?

Kodun tümü teslim edilecek.


Cvp: FCM v1 API Push Notification Servisini Kullanmak (OAuth2.0 ile) - RAD Coder - 16-04-2025

FCM v1 API ile push notification göndermek için iki farklı demo hazırladım. 

1. Uygulama Token oluşturma
Uygulama VCL tabanlı (Kolayca web servise veya FMX mimarilerine dönüştürülebilir)

1- FCM servis kullanıcı dosyasını (service account file) okuyarak, proje bilgilerini alır.
2- Lokalde (kişisel bilgisayar veya kişisel sunucu üzerinde), RS256 hash algoritmasına göre JWT Token (Refresh Token) üretir.
3- Refresh token ile FCM servislerine erişmek için gerekli olan Access Token üretir.   




2. Uygulama push notification göndermek ve iOS APNs token'ı FCM token'a dönüştürme
Uygulama mobil (FMX) tabanlı.

1- Acces token ile Push Notification gönderir.
2- Access token ile iOS push notification token değerinin (APNs token), FCM token değerine dönüştürür.




Kod oldukça sade olduğundan, ana uygulamaya entegrasyonu çok kolaydır.

[attachment=2910]