Implementasi web service pada Facebook API

Pengertian Web Service

Web service merupakan suatu suatu layanan sistem perangkat lunak yang mendukung interaksi dan komunikasi dengan sistem yang berbeda – beda (interoptabilitas) pada suatu jaringan. Web service digunakan sebagai bentuk layanan oleh sebuah website untuk menyediakan layanan berupa cuplikan – cuplikan informasi, sehingga memungkinkan sistem diluar website tersebut dapat berinteraksi dengan dengan website tersebut melalui layanan – layanan yang disediakan. Web service menyimpan data dengan standar XML sehingga dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi, maupun bahasa compiler. Dalam proses kerjanya web service tidak memerlukan GUI karena yang bekerja biasanya pada fungsi logic program dan request data.

Terdapat beberapa fitur kemudahan yang membuat web service saat ini sering digunakan dalam praktik di dunia IT saat ini, yaitu:

  1. Web service tidak memerlukan akses hingga level sistem operasi, sehingga cukup terdeploy di web server dan layanan sudah dapat dilakukan.
  2. Web service berjalan pada protocol standar http, sehingga mudah diintegrasikan serta tidak memerlukan konfigurasi khusus di sisi firewall.

 

Penerapan Web Service

Web API – REST architecture

                        Representational state transfer (REST) adalah salah satu rancang bangun arsitektural sistem web service. REST merupakan salah satu model design rancang bangun web service selain SOAP dan WSDL. REST mulai berkembang pesat karena sistemnya yang lebih sederhana daripada SOAP dan WSDL. Sisi sederhana dari REST yang membuat menarik adalah REST dapat dibangun dengan sedikit tools . Selain itu untuk melakukan testing terhadap REST service dapat dilakukan secara sederhana pada web browser tanpa harus melakukan simulasi client – server.

Gambar 1. arsitektur sistem REST

                        Web API merupakan sebuah perkembangan dalam web service yang menggunakan REST sebagai dasar arsitekturnya. Web API memiliki kemampuan untuk melakukan kombinasi terhadap lebih dari 1 web service yang nantinya akan menghasilkan sebuah aplikasi baru yang diberi nama ­mashup.

            Ketika digunakan dalam pengembangan web,  web API membuat rancangan request HTTP lengkap dengan pendefinisian struktur dari pesan, biasanya dibentuk dalam format XML atau JSON. Ketika sedang menjalankan beragam web service, masing – masing sub service tersebut berjalan secara ­autonomous. User tidak memiliki kontrol terhadap masing – masing service tersebut. Dengan segala kemudahan yang ada, web API juga memiliki kekurangan yaitu: penyedia web service dapat merubah, menghilangkan, , ataupun mengupdate program tanpa notifikasi. Reliabilitasnya yang kurang begitu didukung. Kegagalan terkadang muncul ketika dieksekusi.

 

 

Gambar 2. Gambar cara kerja web API

Penerapan Web API (Facebook)

 

            Facebook merupakan salah satu website social networking terbesar dunia yang menyediakan fitur web service bagi para penggunanya. Sebagai seorang pengguna facebook, ketika mulai mengakses sebuah aplikasi pada facebook, kita akan mengirim suatu HTTP request ke server facebook. Request tersebut kemudian diarahkan ke pemilik dari aplikasi tersebut. Ada suatu informasi seperti user ID dan sejenisnya yang akan direquest dari server pemilik aplikasi ke server facebook. Selanjutnya server facebook akan merespon dan mengirimkan data sesuai dengan yang diminta.

            Pada framework web service milik facebook, terdapat beberapa komponen yang berkolaborasi, yaitu:

  • Facebook API (Aplication Programming Interface)
  • FBML (Facebook Markup Language)
  • FQL (Facebook Query Language)
  • Facebook Javascript

Facebook API

            Facebook API yang kini telah berkembang dengan nama Graph API merupakan web service programming interface milik facebook yang berfungsi untuk mengakses konten – konten layanan pada facebook, seperti profil, teman, foto, dll. Selain itu juga dapat mengakses fungsi – fungsi pada facebook seperti (login, redirect, update, dll).

Facebook Markup Language

            Facebook markup language adalah bahasa seperti HTML namun dengan tag  – tag khusus milik facebook yang berfungsi untuk menampilkan data pada halaman canvas di facebook. Berikut penjelasan singkat mengenai fitur pada facebook markup language:

  • FBML juga mengandung subset dari elemen bahasa HTML.
  • FBML mensupport penggunaan css, namun ini terbatas pada internal css dari FBML itu sendiri. Penggunaan javascript juga didukung namun tidak semua disupport sehingga ada kemungkinan ada bagian dari javascript yang tidak berjalan.
  • FBML menyediakan beberapa ekstensi untuk UI dari aplikasi.

Facebook Query Language

                        Facebook query language adalah SQL-based interface untuk data – data pada facebook. Melalui FBQL, pengguna facebook API dapat melakukan akses dan query pada database facebook seperti teman, grup, foto, tag, dll. FBQL mirip dengan bahasa SQL pada umumnya, namun dengan beberapa limitasi, yaitu:

  • Fungsi SELECT hanya bekerja pada satu tabel pada satu eksekusi.
  • Query JOIN tidak diijinkan.
  • Query harus terindex.

Facebook Javascript

Facebook javacript memiliki perbedaan javascript biasa, yaitu:

  • Facebook menyediakan implementasi DOM alternatif yang biasanya menggunakan DOM standar milik javascript.
  • ada perbedaan implementasi pada beberapa objek FBJS.
  • Ketika memproses kode pada elemen script, akan dilakukan penghubungan relasi antara fungsi – fungsi dan nama variabel pada aplikasi.

Social graph

Facebook API bekerja dengan cara merepresentasikan data – data menjadi bentuk objek dan relasi antar data – data tersebut. Representasi objek beserta relasinya ini pada facebook disebut dengan social graph.  Untuk mendefinisikan social graph tersebut secara unik, maka masing – masing objek pada social graph memiliki ID yang unik. Sebagai contoh jika melakukan akses pada social graph dengan ID : bayuditaprawira (https://graph.facebook.com/bayuditaprawira), maka akan muncul data sebagai berikut:

{

   “id”: “1048574353″,

   “name”: “Bayu Ditaprawira”,

   “first_name”: “Bayu”,

   “last_name”: “Ditaprawira”,

   “username”: “bayu.ditaprawira”,

   “gender”: “male”,

   “locale”: “id_ID”

}

            Seperti dijelaskan sebelumnya bahwa social graph juga mencakup pada relasi objek, maka dapat ditambahkan tipe koneksi antar graph yang diinginkan, seperti contoh: (https://graph.facebook.com/me/friends?access_token=…).

Facebook OAuth

Dengan api yang berkemampuan untuk mengakses seluruh objek dan relasi terkaitnya, maka dengan mudah dilakukan data crawling terhadap seluruh user dan relasi terkaitnya pada facebook. Untuk menangani hal ini, maka terdapat fitur Oauth yang berguna untuk memberi autentifikasi sebelum facebook API yang digunakan oleh suatu aplikasi dapat mengakses  data – data yang diingikannya.

Secara default facebook API hanya dapat merequest basic information seorang user pada web server facebook. Untuk mendapatkan akses yang lebih luas, maka diperlukan autentifikasi yang mendetail mengenai bagian mana yang diperbolehkan untuk diakses, di facebook bagian ini dinamakan dengan scope. Untuk mengecek autentifikasi yang diberikan oleh user, dapat dicek dengan menggunakan fungsi (https://graph.facebook.com/me/permissions?access_token=USER_ACCESS_TOKEN).

Ketika memulai mendapatkan hak akses pada scope yang direquest, maka aplikasi akan mendapat Token yang merupakan penanda bahwa telah diberikan hak akses. Pengguna suatu aplikasi dapat berhenti memberikan hak akses terhadap user mereka yang akhirnya membuat akses token menjadi tidak valid. Hal ini sesuai dengan konsep API dimana perubahan – perubahan dapat terjadi sewaktu – waktu dan pengguna API tidak memiliki kuasa untuk menolak hal tersebut.

Mekanisme kerja Facebook API

  Berikut adalah deskripsi singkat mengenai cara kerja Facebook API:

  1. User memilih untuk masuk ke suatu aplikasi.
  2. Aplikasi kemudian melakukan invoke HTTP POST kepada endpoint dari facebook graph API
  3. Facebook melakukan crawling terhadap objek dari halaman aplikasi, membaca metadata, dan menyambungkan dengan objek – objek terkait yang telah diberi autentifikasi.

gambar 3. Mekanisme kerja web service facebook

Referensi

http://www2008.org/papers/pdf/p805-pautassoA.pdf

http://www.ibm.com/developerworks/webservices/library/ws-restful

http://developers.facebook.com/docs/opengraph/keyconcepts/

http://developers.facebook.com/docs/reference/api/

http://developers.facebook.com/docs/opengraph/

http://developers.facebook.com/docs/authentication/

 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>