Facebook chat uygulaması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Facebook chat uygulaması

Mesaj gönderen Lord_Ares »

Facebook chat uygulaması yapmak istiyorum. Normalde Facebook webbrowser parse işlemi ile bağlanıp gezinebiliyorum. Fakat chat uygulamasını parse ederek kullanamayacağımı gördüm. Facebook taki chat uygulamasını msn gibi ayrı bir programdan kullanmak istiyorum. Bununla ilgili nereden başlamalıyım, nasıl yapılır veya bildiğiniz komponent , api varsa veya fikirleriniz ,paylaşırsanız sevinirim.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Facebook chat uygulaması

Mesaj gönderen Lord_Ares »

https://developers.facebook.com/docs/chat/
Bu apiyi kullanan varmı, nasıl kullanılıyor.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Facebook chat uygulaması

Mesaj gönderen mrmarman »

Merhaba.

Senin için bir bakayım dedim, benim için biraz karmaşık bir durum görüyorum. :shock: Şöyle ki...

1. "Facebook Chat" sunucusuna "Jabber/XMPP service" üzerinde bağlanıldığını söylüyor.
2. "Jabber/XMPP service" bağlantısı için Youtube üzerinde Almanca bir video var onda Jabber client projesinde SSL bağlantı için yaptığı işlemleri ifade ediyor. Belki bu kişiyle yazışabilirsin.
3. Çok fazla kaynak göremedim ama "spectrum-2.0.0-beta2" adıyla bir C projesi indirip inceledim. "XMPP transport/gateway" olduğunu yani "ICQ, XMPP (Jabber, GTalk), AIM, MSN, Facebook, Twitter, Gadu-Gadu, IRC and SIMPLE" gibi geniş bir ağı desteklediğini ifade ediyor.
vs.vs.

- Bu işi ücreti karşılığı yapmayacaksam yukarıda saydığım ve nicesinin olduğu API ile erişim kanalına girmezdim diye düşündüm.
- O zaman kısa zamanda sonuç almak için ne yapardım diye kendime sordum. Bu bağlantı işini bizzat kendi sunucusuna bırakıp, yapabiliyorsam amiyane tabir ile "bu sunucuya semer takıp ona binmek" dedim.
- Yani bir browser içerisinde facebook'a login olmayı, mesajları parse ederek okumayarak formuma almayı ve mesaj satırına istediğimi yazıp post ettirmeyi denerdim. :roll:
Resim
Resim ....Resim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Facebook chat uygulaması

Mesaj gönderen Lord_Ares »

Mrmarman hocam , bende facebook kaynak kodları inceledim. Kendime belli sabitler belirledim. Html parse ile yapılabileceğini gördüm. Forma bir tane ListView
ekleyip htm parse ile online olan kişileri ona çekmeyi deniyorum.

Facebookta bulduğum sabitlerim. Facebooka bağlandıktan sonra, bir text dosyasına sayfa kaynağını alarak aşağıda belirttiğim başlangıç ve bitiş kısmı hariç geri kalanları siliyorum.

Başlangıç noktası <ul class="fbChatOrderedList clearfix">
Bitiş Noktası </div><div class="fbChatTypeaheadView hidden_elem" id=

Kalan kod içerisinde
li tagı ile başlayanların her biri bir kullanıcı demek.

_42fz yazanlar kapalı olanlar
_42fz active yazanlar oturum açmış olanlar
_42fz mobile telefondan girmiş fakat kapalı ( yanında telefon simgesi çıkanlar)
_554m moreOnlineFriends daha fazla arkadaş kısmındakiler

her li tagından sonraki href="/messages/100009526200434" kısmı tıkladığımda o kişiye ait mesajlaştığım mesaj sayfası geliyor.
<span class="accessible_elem">AHMET YAZGIN</span>< kısmında ise mesajlaştığın kişi adı geliyor.

webMessengerRecentMessages id li ul nin altındaki her webMessengerMessageGroup clearfix kişi listenizdeki bir kişiyi ve bu webMessengerMessageGroup clearfix altındaki <div class="_38 direction_ltr içindeki her bir span taqı da gönderilen mesaj oluyor.

bunları htm parse ederek gelen mesajı alabilir, aynı şekilde o kişiye mesaj gönderebileceğimi gördüm. Bu arada şunu da belirtmek isterim
Ekranın en üst köşesinde facebook yazısının hemen yanında mesaj ikonuna tıklayarak mesajlara giderseniz adresin şöyle olduğunu görebilirsiniz
https://www.facebook.com/messages/

istediğiniz bir kişinin mesajlarını açmak isterseniz. yukarıdaki parse işleminde href="/messages/100006016200434" kısmını ekleyerek
direk o kişinin mesajlarına ulaşmış oluyorsunuz. buradaki 10000 gibi rakam yerine o kişinin adınıda alıp yapabiliriz. göstermek gerekise

https://www.facebook.com/messages/100006016200434 kodu alıp böylede navigate edilebilir

https://www.facebook.com/messages/ahmet.yorgun böylede edilebilir ( sondaki ahmet.yorgun bilgisini dilerseniz o kişinin hakkında bölümündeki mail adresi kısmından da alabilirsiniz mail adresindeki ismi çekiyor buraya )

Denemelere başladım, yapabilirsem projeyi ve açık kodunu buraya paylaşacağım. Şuan parse işlemi için basit yöntem aramaktayım. Parse işlemini sabitleye bilirsem mesaj gönderme işlemini deneyeceğim.
Saygılar.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Facebook chat uygulaması

Mesaj gönderen SimaWB »

Lord_Ares yazdı:Facebook chat uygulaması yapmak istiyorum. Normalde Facebook webbrowser parse işlemi ile bağlanıp gezinebiliyorum. Fakat chat uygulamasını parse ederek kullanamayacağımı gördüm. Facebook taki chat uygulamasını msn gibi ayrı bir programdan kullanmak istiyorum. Bununla ilgili nereden başlamalıyım, nasıl yapılır veya bildiğiniz komponent , api varsa veya fikirleriniz ,paylaşırsanız sevinirim.
Facebook chat XMPP (Jabber) kullanıyormuş. Delphi ile birlikte gelen IP Works bileşen setinde XMPP bileşeni var. Onu denemenizi tavsiye ederim. (Hatta demoları arasında jabber adında bir demo var)
There's no place like 127.0.0.1
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Facebook chat uygulaması

Mesaj gönderen AliZairov »

Selam. En kolay parse yapma işlemi kodu bu kardeşim.

Kod: Tümünü seç

function aradansec(text, ilk, son:String ): WideString;
begin
   Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
   Result := Copy(Text, 1, Pos(Son, Text)-1);
end;

function html_temizle(S: string): string;
var
  TagBegin, TagEnd, TagLength: integer;
begin
  TagBegin := Pos( '<', S);

  while (TagBegin > 0) do begin
    TagEnd := Pos('>', S);
    TagLength := TagEnd - TagBegin + 1;
    Delete(S, TagBegin, TagLength);
    TagBegin:= Pos( '<', S);
  end;

  Result := S;
end;

Edit1.Text := aradansec(WebBrowser1.OleObject.document.body.innerHTML, '<TD>Ad:</TD>', '</TD></TR>');
Edit1.Text := aradansec(memo1.text, '<TD>Ad:</TD>', '</TD></TR>');

Edit1.Text := html_temizle(Edit1.Text);
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Facebook chat uygulaması

Mesaj gönderen Lord_Ares »

SimaWB, bu söylediğiniz harika hemen inceliyorum.

AliZairov sağolasın kardeşim güzel bir kod çok işime yaradı.

Html parse ederken, id 'si ve name olmayan sadece class ile oluşturulmuş <a> tagı ile link var buna bir türlü click gönderemedim. Umarım çözüm bulurum :)))
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Facebook chat uygulaması

Mesaj gönderen mrmarman »

index ile göndermeyi dene.

Kod: Tümünü seç

      WebBrowser1.OleObject.Document.forms.item(1).elements.item(8).click();
gibisinden. Deneme yanılma ile bulursun. Başarılar.
Resim
Resim ....Resim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Facebook chat uygulaması

Mesaj gönderen Lord_Ares »

hocam o şekil göndermek istedim fakat item nosunu yakalayamıyorum. İtem no 7 veya 8 diyemedim iç içe bir çok div var
ve bu divin içinde <a> tagı classnameden yakalayayım dedim aynı classı kullanan bir çok item çıktı :)))
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Facebook chat uygulaması

Mesaj gönderen mrmarman »

Merhaba.

- O zaman fonksiyon elinde varsa, JavaScript ile fonksiyonu çalıştırmak için aşağıdaki şekilde dener misin?

Unutmadan Uses'a MSHTML eklenecek

Kod: Tümünü seç

Var
  strJava : String;
begin
  strJava :=   'javascript:LoginSubmit( document.forms[''Login''].submit() )';
  (WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript( strJava, 'JavaScript' ); // Uses MSHTML eklenecek
end;
Resim
Resim ....Resim
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Facebook chat uygulaması

Mesaj gönderen AliZairov »

Selam. Ben böyle sorunlarda hep bu proğramla çözüm bulurum. post get olaylarında. HttpAnalyzer isimli çok mütiş bir proğram. Proğramı seçmekle giden gelen verileri anında alıyorsunuz. Önce siz postu normal tarayıcıda yapın ve proğramla linkleri yakalayın ve inceleyin. Bu yoldan izleseniz daha çabuk çözüme ulaşırsınız diye düşünüyorum. google tarayıcısında kullanmayın mozilla bu iş için uyğun.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Facebook chat uygulaması

Mesaj gönderen Lord_Ares »

SimaWB, dediğiniz bileşeni indirdim örnek projeyi denedim fakat bağlanamadı. Nette araştırma yapıyorum fakat çok fazla kaynak yok.
Mrman hocam dediğinizi inceledim , iç içe okadar çok kod var ki umarım bulup birde o şekil deneyeceğim. :)))
Cevapla