Sunday, February 15, 2009

Facebook Connect

Web sitemize giris yapan kullanicilarin ismini kendi veri tabanimizda tutmak istemiyor, ve potansiyel kullanicilarin Facebook'ta tuttugu bilgilerini (profil, arkadas listesi gibi) kendi sitemize almak istiyorsak, Facebook Connect bize bu ozellikleri sunuyor. Ucuncu parti siteler uzerinden kullanici girisi kavrami son zamanlarda oldukca ses getiren bir uygulama oldu. Bu alanda buyuk bir yaris var. Google'in Friend Connect yaklasimi var, MySpace ayni sekilde. Biz uzerinde calistigimiz uygulama icin Facebook'u sectik, ileride diger secenekleri de dahil etmeye baslayabiliriz.

FB Connect ile sitemizdeki "giris (login)" dugmesi artik FB login'i olacak; yani ve dugme kontrolu bir sure Facebook'a aktarak Facebook login'i yapacak ve gereken bilgileri bizim programimiza aktaracak. Java uzerinden FB Connect yapmak icin guzel bir ornek Java ile yazilmis "Random Friend" uygulamasi. Ornekte ne yazik ki gerekli jar dosyalari yok; Bu dosyalari biz ekleyerek, kodlari bir war dizini haline getirdik. Bizim versiyonumuzu suradan indirebilirsiniz. Bu programi Amazon EC2'daki bir makina uzerinde kurmayi ogrenecegiz.

Niye EC2 kullandik? Cunku Facebook'un baglanti sirasinda bizden hem veri almasi hem de bize veri gondermesi gerekiyor. Gonderebilmek icin tercihen firewall arkasinda olmayan, statik IP adresi ve ismi olan bir makina ile iletisim halinde olmali.

Amazon EC2 uzerinde bir makina yaratin. Hangi imaji kullanacagiz? Uzerinde Ubuntu Linux Server, JBoss, ve Apache iceren imaji kullanacagiz. Bu imajin kodu ami-4ea34727; Imaj hakkinda detayli bilgiler.

Makina yaratildiktan sonra ec2-describe-instances ile ismine bakin. Facebook'ta bir "uygulama" yaratirken bu isim lazim olacak . Her ne kadar gercek uygulama Facebook disinda isleyecek olsa bile, yine de FB'nin alisveris yapabilmesi icin FB uzerinde de bir uygulama yaratmis olmak lazim. Uygulama yaratma sayfasindan gerekli bilgileri giriyoruz. Callback URL yazan yere uygulamamizin tam ismini giriyoruz: http://ec2-filan-falan.amazonaws.com/randomfriendfacebook gibi.

Simdi verdigimiz zip dosyasini EC2'deki makinamiza scp ile kopyalayin. Unzip edin.

Facebook'ta uygulama yaratirken "API Key" adli bir kimlik yaratilmis olmali. Bu bilgiyi alin, ve connect.jsp ve showfriend.jsp dosyalarinda FB.Facebook.init cagrisina gecilmis olan kimligin yerine koyun.

Bu degistirilmis war dizinini imajinizda JBoss'un oldugu yere kopyalayin. Bu yer /var/local/jboss/jboss-4.2.2.GA/server/default/deploy olacak.

JBoss makinasini run.sh ile baslatin, arka plana atin.

Simdi Apache'yi baslatmamiz gerekecek (post 80 uzerinden 8080'e aktarma yapsin diye, yoksa baska taklalar atmamiz gerekecek; baska hicbir sey yapmaniza gerek yok, bu imaj zaten gerekli mod_jk ayarlarini yapmis).

/var/local/http/bin'de bin/apachectl start isletin.

Bitti! Artik http://ec2-vs.amazonaws.com/randomfriendfacebook/connect.jsp ile uygulamaniza baglanabilirsiniz. Burada Connect dugmesine basin, ve FB uzerinden login ettirilip showfriend.jsp sayfasina yonlendirildiginizi goreceksiniz. Bu sayfada arkadas listenizden rasgele birisi resmi ile beraber gosterilecektir.

Bu ornek tabii ki cok basit. Bundan sonraki orneklerimiz JSP degil, Servlet ya da EJB bazli olacak.

No comments: