Wednesday, April 23, 2014

post


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
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 ?
?
1
2
<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 :
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
<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 :
?
1
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 :
?
1
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) :
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$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) :
?
1
2
$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.

0 comments:

Post a Comment

 

CARA BISNIS ONLINE. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Bloganol dot com