Facebook'ta bir gönderiyi herkese açık olan paylaşanların isimlerini ve facebook profil linklerini alma. Böylece facebook sayfanızın çekilişinde kullanabilirsiniz.
Facebook'ta sayfanızda bir çekiliş yaptınız. Çekiliş içinse gönderiyi herkese paylaşmayı şart koştunuz. Gönderiyi 300 kişi paylaştı ve şimdi o isimleri ve profil linklerini nasıl alıpta çekilişe vereceğinizi kara kara düşüyorsunuz :) Dert etmeyin size bugün bir kaç farklı yöntem göstereceğim. Bunun için aklıma gelen 3 yöntem var. Brinici yöntemi bilgi maksadıyla veriyorum. Bizi ilgilendiren 2. ve 3. yöntemler olacak.
1-) Facebook API yöntemi
1A-Hazır Uygulamalar: İnternette bir Facebook uygulaması bulmak mümkün olabilir. Fakat bunun için uygulamaya facebook profil izinleri vermelisiniz. Bende güvenmediğim uygulamalara izin vermek istemediğimden bu seçeneği eledim.
2A-Kendi Uygulamanız: Facebook API kütüphanesi sayesinde bir çok farklı programlama dili platformunda uygulama yazmanız mümkün. Böylece basit bir gönderiyi paylaşanların isimlerini ve facebook linklerini çeken bir uygulama yapabilirsiniz. Hatta bunun için 2. yöntemde vereceğim kodlardan yararlanabilirsiniz. Eğer Facebook API'yi incelerseniz sorgulama yapısının 2. yöntemle aynı olduğunu görürsünüz. Eğer istek olması halinde Facebook API ile uygulma geliştirmek adlı bir eğitimde yayınlayabilirim.
2-) Facebook Graph API Explorer
Bu yöntemde Facebook'un yine geliştiricilere sunduğu bir araç. Böylece istediğiniz sorguları gerçekleştirerek verileri JSON formatında döndürebiliyorsunuz. Bununla ilgili kodu ve açıklamayı en kısa sürede vereceğim
3-) Javascript Kodu
Geldik en zahmetsiz ve kolay yönteme. Ben çok fazla uğraşmak istemiyorum kaba kuvvette işimi görür diyorsanız yapmanız gereken :
Aşağıda yer alan kod üzerinde 14. satırdaki f(c[0].innerHTML != "Yazılım Geliştiricileri") yazılı yerdeki Yazılım Geliştiricileri yazısını kendi sayfa adınızla değiştirmeniz. Önce tarayıcınızdan paylaşanların isimlerini almak istediğiniz gönderiye geliyoruz ve paylaşanlar kısmına basıyoruz. Pencere açıldıktan sonra tarayıcınızdan konsol kısmını açmalısınız. Chrome tarayıcı için F12 tuşuna bastıktan sonra gelen kısımdan Konsol sekmesini seçin. Ortaki yere alttaki kodu yapıştırın ver enter tuşuna basın. Kodu çalıştırdığınızda ilk önce gönderiyi paylaşan tüm profilleri çekebilmek için sayfanın en altına iner. Tüm profilleri çekene kadar devam eder. Tüm profilleri çekdiğini anladıktan sonra belirli süre (bizim geçerli kodda 10 saniye) bekleyerek tüm isimleri ve linkleri ekranda listeler. Artık tüm isimler ve linkleri elinizde :)
Örnek Liste (Ekranda göstereceği biçim)
İsimler
1-) Bilal Saim
2-) Ahmet Başlat
3-) Ayşe Dur
Linkler
1-) https://www.facebook.com/bilaaaalsaim
2-) https://www.facebook.com/ahmetbaslatbakalim
3-) https://www.facebook.com/aysedurbakalim
var isimler = [];
var linkler = [];
var repost = document.getElementById("repost_view_dialog");
function islem(){
var a = repost.getElementsByClassName("fwb")
for(var i=0;i {
c = a[i].getElementsByTagName("a");
var disim = c[0].innerHTML;
var dlink = c[0].href;
//Sayfanızın görünen adını Yazılım Geliştiricileri yazan yerle değiştirmelisiniz
if( disim != "Yazılım Geliştiricileri")
{
//Birden fazla paylaşanları listeye birden fazla eklememek için facebook linki listeye eklenmişmi diye kontrol ediliyor
if(diziKontrol(dlink))
{
isimler.push(disim);
linkler.push(dlink);
}
}
}
//İsim yazdırma kısmı +"
" kısmı alt satıra geçmesi için
document.write("İsimler
");
for(var i=0;i {
var sira = (i+1).toString();
document.write(sira+"-) "+ isimler[i] +"
");
//console.log(sira+"-) "+ isimler[i] +"
");
}
//Link yazdırma kısmı
document.write("
Linkler
");
for(var i=0;i {
var sira = (i+1).toString();
document.write(sira+"-) "+ linkler[i] +"
");
//console.log(sira+"-) "+ linkler[i] +"
");
}
}
function diziKontrol(deger){
for(var i=0;i {
if(deger === linkler[i])
{
//console.log("true");
return false;
}
}
return true;
}
var say = 0;
var bekleme = 0;
var enAltaIn= function(){
var a = repost.getElementsByClassName("fwb");
var yeni = a.length;
console.log(a.lenght);
if(yeni == say)
{
bekleme += 1;
//Bekleme süresi 10 saniye
if(bekleme == 10)
{
clearInterval(yenile);
islem();
}
}
else
{
bekleme = 0;
say = yeni;
}
window.scrollTo(0,document.body.scrollHeight);
}
var yenile = setInterval(enAltaIn,1000);
Daha detaylı ayarlar:
Burada bahsedecekelerime isteğe bağlı bakabilirsiniz. 31.satırda document.write("İsimler
"); kodu ekanda bastırılacağı anlamına geliyor ekranda gösterilecek şeyleri düzenlemek istiyorsanız buraları düzenleyebilirsiniz. Örneğin document.write(sira+"-) "+ isimler[i] +"
"); bu kodda 1-) İsim şeklinde bir çıktı elde edilir bunu document.write(isimler[i] +"
"); bu kodla değiştirerek artık sadece İsim çıktısını elde edebilirsiniz başında sıra numarası olmadan. 68.satırda var yenile = setInterval(enAltaIn,1000); bu koddaki 1000 rakamı bir saniye anlamına gelir. Burada her bir saniyede bir enAltaIn fonksiyonu çağrılır ve fonksiyonda sayfanın en altına inme kodu çalıştırılır. Saniyeyi arttırmak veya azaltmak isterseniz 1000 sayısını değiştirebilirsiniz saniye*1000 formülüne göre değiştirebilirsiniz böylece alta inme denemelerini daha yavaş veya daha hızlı hale getirebilirsiniz. Örneğin 5 saniye için 5*1000 = 5000 yazılması gerekir. 53.satırda if(bekleme == 10) buradaki 10 sayısı ne kadar denemede daha fazla profil bulamazsa artık dursun ve bulduğu listeleri göstersini belirler. Eğer alta inme fonksiyonunu 1 saniyede bir çalıştırıyorsanız 10 saniye içinde yeni profiller elde edemezse artık alta inmeye çalışmaz. Buradaki 10 rakamını isteğe bağlı değiştirebilirsiniz.
Bilal Saim