Facebook Development
Setelah sekian lama saya menghilang mengarungi pekerjaan baru sebagai Facebook Developer, kini saya kembali mendokumentasikan sebagian pengalaman saya didalam blog ini. Pada dasarnya development aplikasi menggunakan platform facebook cukup mudah bagi yang sudah terbiasa dengan API.
Lalu apa sih tujuannya menggunakan facebook platform ?. Bisa diibaratkan begini, pada suatu website. Anggap saja website ini(blog.fathihadi.net), siapa sih yang mau registrasi user ?. ini kalau satu website, bagaimana kalau banyak website ? apa anda mau terus-menerus registrasi user untuk setiap website ?. Sedangkan anda sudah pasti punya account Facebook(hari gini gak punya facebook ?). kenapa tidak pakai account facebook saja untuk semua website ?, toh sudah banyak friend, dan aktifitas disana.
Nah dengan menggunakan API yang sudah disediakan oleh facebook, anda dengan mudah dapat menarik data User sesuai Permission(izin) yang di berikan oleh user. Ada izin untuk mempost sesuatu di wall user secara langsung, biasa dikenal dengan permission publish_stream.

Facebook Publish to Wall
Lebih lengkap mengenai permission ada di sini http://developers.facebook.com/docs/authentication/permissions
Lalu sekarang kita perlu mengatahui yang disebut access token, apa itu access token ?. Coba bayangkan jika kita sedang berada di sebuah halaman website, sedangkan informasi anda berada di website lain, tetapi ada sudah login pada website dimana informasi anda berada. Dengan menggunakan oath authentication, anda akan diberikan sebuah access token, dimana access token bisa ditukar dengan informasi, dibandingkan anda harus login dimana user dan password anda dipertaruhkan.
Facebook API dapat digunakan untuk :
- Website
- Mobile Application
- Application on Facebook.com
Yang harus anda perhatikan dari awal adalah memilih render method. Facebook menyediakan dua jenis render method, jika anda akan membuat aplikasi web yang menggunakan CSS serta Javascript atau justru mengintegrasikan dengan jQuery, silahkan gunakan iFrame. Namun jika anda akan membuat aplikasi sederhana yang tidak menggunakan css serta javascript, silahkan gunakan FBML. Apa sih bedanya ?, suatu saat akan saya bahas khusus mengenai perbedaannya.
Sekarang kita akan membahas lebih dalam mengenai, FBML, API, dan FQL.
FBML
FBML merupakan singkatan dari Facebook Markup Language , hal menarik bagi saya pada awalnya, karena kita bisa dengan mudah mendapatkan informasi dan tampilan yang telah disediakan oleh facebook dengan mudah. Seperti apa sih contohnya ?
<fb:name uid="12345" /> // akan menghasilkan nama sesuai uid yang tertera. <fb:profile-pic uid="12345" linked="true" /> // akan menghasilkan tag html <img/> dengan property src foto dari uid yang tertera.
Semuanya sudah terdokumentasi lengkap di http://developers.facebook.com/docs/reference/fbml/. Namun yang perlu anda perhatikan adalah render method yang anda pilih. Tidak semua FBML dapat berjalan jika anda memilih iFrame, bahkan anda harus menggunakan XFBML jika anda menggunaan iFrame. Berikut contoh penggunaan FBML pada iFrame :
<fb:serverFbml style="width: 755px;"> <script type="text/fbml"> <fb:fbml> <fb:request-form action="<URL for post invite action, see fb:request-form docs for details>" method="POST" invite="true" type="XFBML" content="This is a test invitation from XFBML test app <fb:req-choice url="see fb:req-choice docs for details." label="Ignore the Facebook test app!" /> "> </fb:request-form> <fb:multi-friend-selector showborder="false" actiontext="Invite your friends to use Facebook." /> </fb:fbml> </script> </fb:serverFbml>
FQL
FQL merupakan singkatan dari Facebook Query language. Satu hal lagi yang menarik dari facebook, kita dapat menggunakan gaya query hampir sama seperti SQL. Namun berbeda dengan SQL, pada FQL kita hanya dapat menggunakan satu table pada clause WHERE, Misalkan :
SELECT name FROM user WHERE uid = me();
Contoh FQL diatas akan memberikan kita hasil nama dari user yang sedang login.
Untuk melakukan subquery kita dapat menggunakan keyword IN, namun subquery tidak dapat mengakses variable yang berada diluar skope, misalkan :
SELECT uid, name, pic_square FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me());
Saat ini Facebook baru mensuport beberapa fungsi dalam FQL, yaitu now(), strlen(), substr(), strpos() dan me().
Bagaimana dengan informasi lainnya, kita tinggal memilih table dan field yg kita inginkan. Untuk list lengkapnya bisa dibuka di http://developers.facebook.com/docs/reference/fql/
API
API yang disediakan facebook cukup banyak, Mulai dari Graph API hingga Flash SDK. Masing-masing keterangan bisa dibaca sesuai topic masing-masing API yang digunakan. Berdasarkan pengalaman saya, untuk pengembagan aplikasi facebook pada Website dan Application Facebook(apps.facebook.com), lebih baik anda menggunakan JavaScript SDK dengan Old REST API/Graph API.
Saya akan memberikan sedikit kunci pemahaman menggunakan Graph API maupun Old REST API disini.
Masing-masing memiliki cara yang berbeda untuk inisialisasi awal.
Pada Graph API(jika kita menggunakan PHP) :
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
//Facebook Authentication part
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms' => 'email,offline_access,publish_stream,status_update'
)
);
$fbme = null;
if (!$session) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
else {
try {
$uid = $facebook->getUser();
$fbme = $facebook->api('/me');
$token = $session['access_token'];
} catch (FacebookApiException $e) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
}
Pada Old REST API(PHP SDK) :
$facebook = new Facebook(API_KEY, SECRET); $facebook->set_user($uid, $sessID);
Contoh pada Old Rest API untuk mendapatkan seluruh isi dari Album User :
$albums = $facebook->api_client->photos_getAlbums($uid, NULL);
Contoh pada Graph API untuk mendapatkan Seluruh isi dari Album User :
curl -F ‘access_token=…’ \
https://graph.facebook.com/me/albums
sebelumnya kita sudah membicarakan mengenai apa itu access token.
Semua hal yang berkaitan mengenai Facebook API, sudah terdokumentasi lengkap di http://developers.facebook.com/docs/.
Kedepannya saya akan lebih banyak memberikan contoh, showcase, serta tips dan trik untuk facebook development. Owh ya, tidak lupa saya ucapkan terima kasih kepada Dhub Digital yang memberikan saya pengalaman terhadap Facebook Development.




whoa, seram kk, masih belom bisa ngoding nih.. ajarin dung >.<
Naizz bro..lanjutkan!..
I love Fb! It can make us reconnected with everyone I’d lost in contact with, and also I’ve associated with a lot of new folks also
. Using Facebook I’m able to publish on their wall, e mail them, and find out images of my buddies babies or even places they have been. I am able to ask my pals to my parties, or getting invited to theirs parties. Plus it takes a true friendship check. If you know these folks where they apparently include all the others that’s a mutual friend but you, that lets you know how they think of you. It hurts and it’s a bad feeling, but at least you’ll be able to know the truth and may also just ignore all of them. I enjoy Facebook for the gaming applications along with other apps and discover it is just pretty enjoyable but it’s all to do with individual preference really. Some folks love it and some do not. Rather than hi5, Fb ten times much simpler to search for your friends. Plus it’s quite a lot less risky also.
whoa, seram kk, masih belom bisa ngoding nih.. ajarin dung >.<
+1
Saya tunggu tulisan perbedaan FBHTML dan iFrame.
Kira-kira untuk loading halaman web nya cepat mana ya kakak ?
@Topan : jujur saya sudah lama tidak bermain2 dengan Facebook Development, namun saya sangat menyarankan untuk menggunakan iFrame di banding FBML, ini berdasarkan pengalaman saya
gan, mw tanya dunk untuk bikin FBML bagaimana, saya rencana mw buat foto contest.
thank you
Kalau bisa gunakan iFrame saja
jangan FBML 
kaka, alesan kk recommend pake IFrame dibanding pake FBML ? thanks.
FBML udah mau di hapus dari FB
Gan, gimana si cara bikin facebook like button di blog?
saya ud coba, tapi kadang muncul kadang nggak.Saya pake yg HTML5.
kk mau tanya scriptny itu ditaruh mana ya?

ane bingung