Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Firebase Post işlemi
#1
Merhabalar,
Bir süredir Android & Delphi işbirliği ile geliştiriyorum bildirim bölümüne geldi sıra.

Android tarafında Firebase bağlantılarını hallettim, firebase'in konsolundan mesaj attığımda telefona düşüyor.

Ama  benim bu mesajları elbette Delphi tarafından göndermem gerekiyor. Bir kaç deneme yaptım ama beceremedim kafama takıldı Sad

Böyle bir url'imiz var "https://fcm.googleapis.com/fcm/send"

Bu url'e aşağıdaki gibi bir json post etmem gerekiyor.

{
   "to": "Android cihazın token bilgisi", 
   "notification": { 
       "body": "Merhaba Burası Delphican", 
       "title": "http://www.delphican.com"
   },
   "data": { 
       "site_adi": "delphican", 
       "link": "http://www.delphican.com"
   }
}


Post ederken Header'im de bu bilgilerin bulunması gerekiyor.
  'Authorization:key=UYGULAMAFİREBASEAPİKEYİ'
  'Content-Type:application/json'

Bunu tecrübe eden oldu mu ?

Bu şekilde php kodu buldum ama php hiç bilmiyorum .


PHP Kod: (Select All)
$firebase_url 'https://fcm.googleapis.com/fcm/send';

$fields = array(
  'to' => $token,
  'notification' => array('title' => 'delphican''body' => 'delphican.com'),
  'data' => array('site_adi' => 'delphican','linki'=>'http://www.delphican.com/')
);

$headers = array(
   'Authorization:key='.UYGULAMAFİREBASEAPİKEYİ,
   'Content-Type:application/json'
);


$ch curl_init();
curl_setopt($chCURLOPT_URL$firebase_url);
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_HTTPHEADER$headers);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4 );
curl_setopt($chCURLOPT_POSTFIELDSjson_encode($fields));   
$result 
curl_exec($ch);
curl_close($ch); 
WWW
Cevapla
#2
bu konuda benimde aklıma gelen bir soru var Firebase bana şöyle bir artı sağlar mı benim uygulaman açılmadığı, çalışmıyor olduğu halde istediğim bir kişiye veya toplu olarak mesaj gönderebilir miyim.
yok benim uygulaman çalması gerekiyor sa kendi sunucuda yeni bildirim varı bakar onu aktif edebilirim zaten
Cevapla
#3
Merhaba firebase i biraz da tecrübe edinmek için kullanıyorum.

Normalde servis yazarım Androidde, kullanıcı uygulamayı kapasada, arkaplanda kontrol yapıp bildirim basarım.
Telefonu kapatıp açsa, uygulamayı açmasa dahi servisim çalışır aynı Windows hizmeti gibi.
WWW
Cevapla
#4
(08-12-2017, Saat: 22:49)nguzeller Adlı Kullanıcıdan Alıntı: bu konuda benimde aklıma gelen bir soru var Firebase bana şöyle bir artı sağlar mı benim uygulaman açılmadığı, çalışmıyor olduğu halde istediğim bir kişiye veya toplu olarak mesaj gönderebilir miyim.
yok benim uygulaman çalması gerekiyor sa kendi sunucuda yeni bildirim varı bakar onu aktif edebilirim zaten

Merhaba,
yhackup'ın da belirttiği gibi uygulamanıza bir Android Service eklerseniz; uygulamanız kapalı olduğunda bile servisiniz çalışacaktır. Servise gönderdiğiniz bildirim de uygulamayı açmanıza yetecektir. Yada servis tarafında istediğiniz bir olayda veya anda ana uygulamanızın Activity'sini çalıştırabilirsiniz.
Önemli NotiOS Hedef Platformunda bildirim gönderme şartı
Cevapla
#5
Merhabalar Sorunu çözdüm,

Delphi Kodları bu şekilde,
const
apikey = 'AIzaSyDJ0Y- uygulama api key -umXdZuQ';
var
 SStream: TStringStream;
 Response: TMemoryStream;
 t: TStringList;
 Request: TclHttpRequest;
begin
 t         := TStringList.Create;
 Response  := TMemoryStream.Create;
 Request   := TclHttpRequest.Create(nil);
 SStream   := TStringStream.Create(Memo2.Text);
   try
     try
         Request.RequestStream := SStream;
         Request.Header.ContentType   := 'application/json';
         Request.Header.ExtraFields.Add('Authorization:key='+apikey)   ;
         Request.Header.ContentLength := IntToStr(SStream.Size);
         firebase.post('https://fcm.googleapis.com/fcm/send', Request,Response);
         Response.Position := 0;
         t.LoadFromStream(Response);
     except on E: Exception do  Memo1.Lines.Add(e.Message)
     end;
     Memo1.Text :=  t.Text;
   finally
      t.Free;
      Response.Free;
      Request.Free;
      SStream.Free;
   end;
end;

Post edilecek json şeması bu şekilde,
{
   "data": {
   "site_name": "DelphiCan",
   "site_url": "www.delphican.com"
 },
 "to" : "cjM5flA4GYo:APA91bF2ZX0ES6sv- Uygulama Token key  -bSpmy6WykfOReGmVix"
}


Eğer Başarılı ise dönen json,
{
"multicast_id":7530974----42509,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[
{
"message_id":"0:1512973893794------1402f9fd7ecd"
}
]
}

Eğer Başarısız ise dönen json,
{
"multicast_id":6714294882636152900,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
{
"error":"InvalidRegistration"
}
]
}


Böylece, Delphiden FCM'ye notificaiton post ederek, Android cihazımızda Bildirimi gösterdik.

lbAjBB.png
WWW
Cevapla
#6
fcm yi delphi tarafında alma işlemini anlatmanız mümkünmü client tarafı yani
Cevapla
#7
(25-06-2019, Saat: 17:30)igny16 Adlı Kullanıcıdan Alıntı: fcm yi delphi tarafında alma işlemini anlatmanız mümkünmü client tarafı yani

maalesef , bilmiyorum konunun uzmanı @"Fesih ARSLAN" beyin yazdığı yazıları kontrol edin forumda anlatmış olabilir.
WWW
Cevapla
#8
Hocam Ben Notification konusunda PooshWoosh.com dan 1 paket almıştım. JVESoft'un bu altyapıyı kullanan bir bileşeni var 100$'a satıyor component pack'ini (https://www.jvesoft.com/wp/). Sonra bir de DB'me bağlı otomatik Ntf gönderecek bir patch yazmıştım ve patır patır döşüyordu notification'ları. ve o kadar seri ve sıkıntısız çalışıyordu ki local Notificationlardan bile daha stabil'di. araştırmanızı öneririm..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#9
(25-06-2019, Saat: 18:07)yhackup Adlı Kullanıcıdan Alıntı:
(25-06-2019, Saat: 17:30)igny16 Adlı Kullanıcıdan Alıntı: fcm yi delphi tarafında alma işlemini anlatmanız mümkünmü client tarafı yani

maalesef , bilmiyorum konunun uzmanı @"Fesih ARSLAN"  beyin yazdığı yazıları kontrol edin forumda anlatmış olabilir.

Merhaba,
Daha önce @AliZairov bununla ilgili bir konu (FCM Android kullanmak) açmıştı.
Cevapla
#10
{
   "data": {
  "site_name": "DelphiCan",
  "site_url": "www.delphican.com"
},
"to" : "cjM5flA4GYo:APA91bF2ZX0ES6sv- Uygulama Token key  -bSpmy6WykfOReGmVix"
}
Merhaba bende bu sekilde veri kayit edebiliyorum fakat  otomatik key olusturuyor, sizdede olusturdugu gibi.Otomatik key olusturmamasini istiyorum ne yapmaliyim?
Muharrem ARSLAN
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 12 IOS Simulatorde Uygulama Çalışmıyor elixir84 13 1.530 07-05-2024, Saat: 08:33
Son Yorum: elixir84
Exclamation Delphi 12 - Android 14 nevez 22 1.204 26-04-2024, Saat: 22:54
Son Yorum: nevez
  NetHTTPClient.Post guvenlik 5 303 31-03-2024, Saat: 09:15
Son Yorum: mrmarman
  Delphi FMX Enter tuşu (dpad_center) yakalama tarkancengiz 8 445 20-03-2024, Saat: 15:54
Son Yorum: tarkancengiz
  Delphi 12 Boş Form Derleme Hatası [Çözüldü] codder71 4 628 21-02-2024, Saat: 22:09
Son Yorum: codder71



Konuyu Okuyanlar: 1 Ziyaretçi