0

Flash facebook apps!

Posted by JIMBOSTRUGGLE on 9:12 PM
Banyak sekali aplikasi2 di facebook sekarang ini bermunculan dan dari aplikasi tersebut dibuat dengan berbagai macam bahasa pemrograman, salah satunya aplikasi dengan Flash. Aplikasi Flash untuk Facebook sangatlah menarik dan potensial untuk dikembangkan. Jadi saya coba menulis tutorial ini untuk share2 ilmu yang udah didapat. Silahkan bila ada pertanyaan dan saran, baik mengenai materi/penulisan

Pada tutorial ini, kita akan belajar membuat aplikasi Flash sederhana yang berkomunikasi dengan akun Facebook kita, dan mengambil data diri seperti biodata dan foto. Langsung saja kita mulai…

Untuk membuat Flash berkomunikasi dengan Facebook, ada beberapa cara yang bisa kita gunakan. Tapi untuk tutorial kali ini, kita akan menggunakan Facebook Actionscript API, API official dari Adobe untuk berkomunikasi dengan Facebook yang bisa diunduh di http://code.google.com/p/facebook-actionscript-api/. Versi terakhir yang saya temui adalah versi 3.4, walau pada saat anda mencobanya kemungkinan sudah ada versi yang lebih baru.Dokumentasinya sendiri bisa kamu lihat disini http://facebook-actionscript-api.goo...ocs/index.html.



Seperti yang terlihat, ada dua tipe file yang bisa kita unduh dan gunakan, yaitu SWC dan Source. Saya akan mengunduh versi Source (facebook_library_v3.4_source.zip), lalu meng-extract isinya pada salah satu folder di komputer. Misalnya, C:/flash/facebook_api/ .

Satu hal lagi yang perlu diperhatikan. Dalam membuat aplikasi Facebook, kita perlu mendaftarkan aplikasi tersebut terlebih dahulu pada akun Developer Facebook untuk mendapatkan SECRET KEY dan APP KEY yang vital digunakan untuk komunikasi data antara aplikasi dengan server Facebook. Untungnya, hal ini sangatlah mudah untuk dilakukan.

1. Buka http://www.facebook.com/developers/. Bila Facebook menanyakan apakah anda mengijinkan aplikasi tersebut mengakses akun anda, pilih Allow.
2. Bila sudah masuk pada halaman tersebut, tekan tombol + Set Up New Application di kanan atas.



3. Isi nama aplikasi yang ingin kamu buat, misal Beginning Fesbuk API, centang tanda persetujuan, lalu tekan tombol Simpan Perubahan. Perlu diperhatikan kalau nama aplikasinya tidak boleh mengandung kata 'face'/'fb' ato elemen kata yang bisa mengacu ke Facebook makanya saya menggunakan kata Fesbuk.



4. Bila berhasil, kamu akan dibawa masuk kedalam halaman Setting application. Kamu hanya cukup memperhatikan dan mencatat Application Key dan Secret Key. Bila sudah, kamu bisa langsung menekan tombol Back to My Application pada bagian kiri atas.
Kita sudah bisa memulai mengembangkan aplikasi Flash yang kita inginkan.



Berikutnya kita mempersiapkan pengembangan aplikasinya menggunakan FlashDevelop. Buka FlashDevelop, lalu pilih Project -> New Project, lalu pilih AS3 Project. Beri nama project dengan BeginningFacebookAPI, lalu pilih lokasi project yang anda inginkan. Tekan Ok.



Pertama-tama kita perlu menambahkan library Facebook Actionscript API kedalam project ini. Pilih Project -> Properties.
Pada layar setting BeginningFacebookAPI(AS3), pilih tab Classpaths, lalu klik tombol Add Classpath… Arahkan pada lokasi library Facebook Actionscript API, dalam hal ini di C:/flash/facebook_api/ . Tekan Ok.



Ketikkan script berikut untuk menggantikan semua script yang ada pada file Main.as tersebut.


package
{
import com.facebook.Facebook;
import com.facebook.events.FacebookEvent;
import com.facebook.net.FacebookCall;
import com.facebook.commands.users.GetInfo;
import com.facebook.utils.FacebookSessionUtil;
import com.facebook.data.FacebookLocation;
import com.facebook.data.users.FacebookUser;
import com.facebook.data.users.GetInfoData;
import com.facebook.data.users.FacebookUserCollection;
import com.facebook.data.users.StatusData;
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;

public class Main extends Sprite
{
public const API_KEY:String = "";
public const SECRET_KEY:String = "";
public var fbook:Facebook;
public var session:FacebookSessionUtil;
public var flashvars:Object;

public var userInfoTxt:TextField;
public var loginTxt:TextField

public function Main():void
{
initInterface();
initFacebook();
}

public function initInterface():void
{
userInfoTxt = new TextField();
addChild(userInfoTxt);
userInfoTxt.width = 400;
userInfoTxt.height = 300;
userInfoTxt.selectable = false;
userInfoTxt.multiline = true;
userInfoTxt.wordWrap = true;
userInfoTxt.text = "Please click 'Connect' button below after Allow the application.";

loginTxt = new TextField();
addChild(loginTxt);
loginTxt.addEventListener(MouseEvent.CLICK, doneValidating);
loginTxt.text = "CONNECT";
loginTxt.border = true;
loginTxt.selectable = false;
loginTxt.width = 65;
loginTxt.height = 20;
loginTxt.x = 20;
loginTxt.y = 40;
}

public function initFacebook():void
{
flashvars = this.root.loaderInfo.parameters;
session=new FacebookSessionUtil(API_KEY, SECRET_KEY, this.root.loaderInfo);
session.addEventListener(FacebookEvent.CONNECT, onConnect);
fbook = session.facebook;

if(flashvars.fb_sig_session_key != null)
{
session.verifySession();
}else
{
session.login();
}
}

public function doneValidating(event:MouseEvent):void
{
session.validateLogin();
}

public function onConnect(e:FacebookEvent):void
{
if(!e.success)
{
session.login();
return ;
}

loginTxt.visible = false;
getUserInfo();
}

public function getUserInfo():void
{
userInfoTxt.text = "Loading user info...";
var call:FacebookCall = fbook.post(new GetInfo([fbook.uid], ['name', 'birthday', 'current_location', 'status']));
call.addEventListener(FacebookEvent.COMPLETE, handleGetInfoResponse);
}

public function handleGetInfoResponse(e:FacebookEvent):void
{
if (e.success)
{
var user:FacebookUser = (e.data as GetInfoData).userCollection.getItemAt(0) as FacebookUser;
var name:String = user.name;
var brithdayDate:String = user.birthday;
var currentLocation:FacebookLocation = user.current_location;
var status:StatusData = user.status;

userInfoTxt.htmlText = "Name: " + name;
userInfoTxt.htmlText += "
Birthday: " + brithdayDate;
userInfoTxt.htmlText += "
Location: " + currentLocation.city;
userInfoTxt.htmlText += "
Status: " + status.message + " at "+ status.time;
}
}
}
}

Berikut penjelasan dari script diatas.

Code:

public const API_KEY:String = "";
public const SECRET_KEY:String = "";

Constant dari API_KEY dan SECRET_KEY harus diisi dengan Application Key dan Secret Key yang sudah kamu catat sebelumnya pada saat mendaftarkan aplikasi ke Facebook.

Pertama kali, kita langsung inisialisasi interface dan koneksi Facebook. Inisialisasi interface yang dilakukan:

Code:

public function initInterface():void
{
userInfoTxt = new TextField();
addChild(userInfoTxt);
userInfoTxt.width = 400;
userInfoTxt.height = 300;
userInfoTxt.selectable = false;
userInfoTxt.multiline = true;
userInfoTxt.wordWrap = true;
userInfoTxt.text = "klik 'Connect' dibawah ini setelah Allow aplikasi.";

loginTxt = new TextField();
addChild(loginTxt);
loginTxt.addEventListener(MouseEvent.CLICK, doneValidating);
loginTxt.text = "CONNECT";
loginTxt.border = true;
loginTxt.selectable = false;
loginTxt.width = 65;
loginTxt.height = 20;
loginTxt.x = 20;
loginTxt.y = 40;
}

Cukup sederhana, kita membuat userInfoTxt yang berisi informasi dari proses koneksi yang sedang berlangsung, dan loginTxt yang dijadikan sebagai tombol sederhana untuk memulai koneksi.

Pada function initFacebook() , kita melakukan inisialisasi dari Class-Class dasar dari Facebook AS3 API dan mencoba mengambil parameter fb_sig_session_key.

Code:

public function initFacebook():void
{
flashvars = this.root.loaderInfo.parameters;
session=new FacebookSessionUtil(API_KEY, SECRET_KEY, this.root.loaderInfo);
session.addEventListener(FacebookEvent.CONNECT, onConnect);
fbook = session.facebook;

if(flashvars.fb_sig_session_key != null)
{
session.verifySession();
}else
{
session.login();
}
}

Perlu diingat, ada perbedaan dalam menjalankan aplikasi ini secara langsung di desktop atau melalui website Facebook dengan di-hosting terlebih dahulu. Bila menjalankan aplikasi secara normal di desktop atau alamat hosting langsung (menggunakan file SWF), maka Flash tidak akan menerima parameter fb_sig_session_key, dan harus melakukan login manual serta validasi ulang ke halaman Facebook menggunakan sebuah tombol (dalam kasus ini, loginTxt).
Lain halnya bila aplikasi ini sudah di-hosting terlebih dahulu, parameter fb_sig_session_key akan langsung didapatkan, dan koneksi dengan Facebook akan berlangsung secara otomatis.

Code:

public function doneValidating(event:MouseEvent):void
{
session.validateLogin();
}

public function onConnect(e:FacebookEvent):void
{
if(!e.success)
{
session.login();
return ;
}

loginTxt.visible = false;
getUserInfo();
}

Function doneValidating() digunakan untuk memvalidasi ulang koneksi ke Facebook bila pada inisialisasi awal koneksi gagal dilakukan (atau bila aplikasi Flash ini dijalankan di desktop/alamat hosting langsung).
Function onConnect sendiri yang bertugas mengecek apakah proses koneksi berhasil atau tidak. Bila tidak sukses, akan memanggil session.login() (membuka halaman website Facebook), sedangkan bila sukses, tombol loginTxt akan dihilangkan, dan proses selanjutnya akan dijalankan (getUserInfo()).

Code:

public function getUserInfo():void
{
userInfoTxt.text = "Loading user info...";
var call:FacebookCall = fbook.post(new GetInfo([fbook.uid], ['name', 'birthday', 'current_location', 'status']));
call.addEventListener(FacebookEvent.COMPLETE, handleGetInfoResponse);
}

Function getUserInfo() ini berfungsi membuat objek FacebookCall yang digunakan untuk memanggil command saat itu, yaitu mendapatkan informasi user (berdasarkan facebook id nya, dalam bentuk Array) yang antara lain nama, hari ulang tahun, lokasi, dan status terakhir. Bila pemanggilan berhasil dilakukan, hasilnya akan diproses pada penanganan event FacebookEvent.COMPLETE di function handleGetInfoResponse().

Referensi dari jenis-jenis API yang tersedia ada pada http://wiki.developers.facebook.com/index.php/API. Kamu bisa mencari padanannya dalam Facebook AS3 API pada package com.facebook.commands (contohnya class GetInfo diatas).

Code:

public function handleGetInfoResponse(e:FacebookEvent):void
{
if (e.success)
{
var user:FacebookUser = (e.data as GetInfoData).userCollection.getItemAt(0) as FacebookUser;
var name:String = user.name;
var brithdayDate:String = user.birthday;
var currentLocation:FacebookLocation = user.current_location;
var status:StatusData = user.status;

userInfoTxt.htmlText = "Name: " + name;
userInfoTxt.htmlText += "
Birthday: " + brithdayDate;
userInfoTxt.htmlText += "
Location: " + currentLocation.city;
userInfoTxt.htmlText += "
Status: " + status.message + " at "+ status.time;
}
}

Function handleGetInfoResponse() akan menangani hasil pemanggilan sebelumnya, dan berfungsi mencetak biodata diri user. Objek FacebookEvent yang diterima akan memiliki atribut 'data' yang formatnya sesuai dengan command GetInfo yang digunakan diatas, yaitu GetInfoData. Kamu bisa menemukan tipe-tipe data hasil atas setiap command pada package com.facebook.data.
Kita mengambil atribut userColletion pada index pertama (0) karena kita hanya mengirimkan satu facebook id. Lain halnya bila kita mengirim banyak id sekaligus, maka kita perlu melakukan perulangan untuk mengambil biodata diri tiap user yang ada.

Setelah aplikasi Flash tersebut selesai dibuat dan di-build tanpa error, maka kita perlu meng-hosting SWFnya dan mengatur ulang setting aplikasi tersebut di Facebook.

1. Setelah meng-hosting file SWF yang dihasilkan, buka halaman http://www.facebook.com/developers/apps.php, pilih aplikasi yang sudah kamu daftarkan sebelumnya, lalu klik Edit Setting.



2. Selesai sudah semua pengaturan yang diperlukan. Untuk melihat hasilnya, kamu bisa langsung membuka alamat website sesuai Canvas Callback URL yang telah diset pada langkah sebelumnya. Bila halamannya tidak terbuka/error, jangan panik dulu karena terkadang pengaktifan halaman aplikasi di Facebook memakan waktu beberapa menit sebelum aktif secara penuh.

0

membuat aplikasi facebook untuk pemula

Posted by JIMBOSTRUGGLE on 9:07 PM
Setelah search kayanya belum ada thread sejenis, mari kita diskusi programming utk membuat aplikasi Facebook

Pertama, ke http://www.facebook.com/developers/

Buatlah aplikasi (klik "Set Up New Application").
Isi data2 di sana.

Nanti setelah buat aplikasi, ada link "example code". Klik. Kita dapat sample code sbb

PHP Code:

// Copyright 2007 Facebook Corp. All Rights Reserved.
//
// Application: NAMA_APLIKASI
// File: 'index.php'
// This is a sample skeleton for your application.
//

require_once 'facebook.php';

$appapikey = 'API_KEY_KALIAN';
$appsecret = 'APP_SECRET_KALIAN';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();

// Greet the currently logged-in user!
echo "

Hello, !

";

// Print out at most 25 of the logged-in user's friends,
// using the friends.get API method
echo "

Friends:";
$friends = $facebook->api_client->friends_get();
$friends = array_slice($friends, 0, 25);
foreach ($friends as $friend) {
echo "
$friend";
}
echo "

";



Lalu download link berikut (semacam API facebook)
Code:


http://svn.facebook.com/svnroot/platform/clients/packages/facebook-platform.tar.gz

Requirement hosting (kalo pake PHP) :

* PHP min 5.2 (kalo nggak salah, atau 5.3)
* cURL / fopen yg bisa buka URL


Wiki nya :
Code:

http://wiki.developers.facebook.com/index.php


Originally Posted by xrvel View Post
Dari Wiki-nya FB, bahasa berikut disupport

PHP* | JavaScript* | Connect for iPhone* | Flash/ActionScript* | .NET SDK* | ASP.NET | ASP (VBScript) | Cocoa | ColdFusion | C++ | C# | D | Emacs Lisp | Erlang | Google Web Toolkit | Java | Lisp | Perl | Python | Ruby on Rails | Smalltalk | VB.NET | Windows Mobile

* Indicates a library that Facebook officially supports.

0

Pengetahuan Wajib Buat Programmer :D

Posted by JIMBOSTRUGGLE on 9:05 PM
Setelah beberapa kali mewawancara calon programmer baru, saya menemukan bahwa cukup banyak dari kandidat pelamar kerja, baik fresh graduate maupun yang (ngakunya) experienced masih belum memahami beberapa pengetahuan dasar.

Entah apa sebabnya. Beberapa kemungkinan bisa saya perkirakan, sebagai berikut:

* Tidak diajarkan di kuliah
* Diajarkan, tapi mahasiswa bersangkutan lebih banyak dugem daripada kuliah
* Diajarkan dan pernah mengerti, tapi karena jarang digunakan jadi lupa

Apapun masalahnya, yang jelas kenyataan ini sangat memprihatinkan. Indonesia tidak akan maju jika bibit tenaga kerjanya mudah merasa cukup.

Secara pribadi, saya punya standar sendiri dalam melakukan seleksi. Jadi buat yang mau melamar kerja, silahkan berlatih. Siapa tahu Anda berhadapan dengan saya di meja wawancara

Berikut menu wajib programmer:

* Konsep dasar sistem operasi.
* Konsep dasar jaringan.
* Konsep dasar relational database.
* Karena sekarang jaman internet, maka wajib memahami protokol HTTP, FTP, POP3, SMTP, SSH.
* Karena sekarang jaman globalisasi, maka wajib memahami Unicode.
* Lebih dari satu bahasa pemrograman.
* Cara menggunakan Version Control.

Berikut pertimbangannya.

Kebanyakan dari programmer Indonesia biasanya membuat aplikasi di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami cara kerja sistem operasi. Pendapat ini boleh saja, kalau Anda adalah staf akunting yang kebetulan dipaksa bos untuk membuat aplikasi general ledger. Untuk programmer profesional, pemahaman ini akan membuat Anda lebih siap untuk membuat aplikasi server yang biasanya multithreaded dan harus efisien digunakan dalam waktu yang lama.

Pemahaman mendalam di salah satu sistem operasi juga merupakan nilai tambah yang signifikan. Dengan mengetahui struktur internal sistem operasi (misalnya Linux), kita dapat mengetahui berbagai pertimbangan dalam merancang aplikasi besar yang terus berkembang.

Saat ini, kalau kita harus membuat aplikasi, besar kemungkinannya aplikasi kita tidak berjalan sendiri. Aplikasi tersebut pasti harus berhubungan dengan internet, melayani banyak pengguna, atau berhubungan dengan perangkat lain seperti handphone atau PDA. Untuk itu, pemahaman atas konsep jaringan sangat penting.

Tes sederhana untuk menguji pemahaman Anda. Coba jelaskan proses yang terjadi mulai dari Anda mengetik http://kaskus.us di browser Anda, sampai halaman ini terbentang di depan mata Anda. Dengan mendengarkan jawaban Anda, saya akan tahu kualitas Anda. Jawaban yang saya harapkan mengandung istilah name-resolve, http-request, virtual directory, query database, HTML response, dan CSS. Kalau Anda menyebutkan (apalagi menjelaskan) tentang routing, gateway, proxy, port 80, saya akan lebih senang lagi.

Tentang relational database. Saya tahu ini pasti pernah diajarkan di kuliah. Jadi lulusan informatika dan sejenisnya jangan bilang belum diajarkan. Yang saya maksud bukan sekedar sintaks SQL. Sintaks itu gampang, bisa dicari dengan mudah di internet. Yang saya inginkan adalah penjelasan tentang Boyce-Codd Normal Form, lengkap dengan contoh kasusnya, di luar kepala. Kalau sudah bisa menjelaskan ini, inner join, subquery, union, itu perkara sepele.

Protokol HTTP sekarang adalah protokol yang paling banyak digunakan di internet. Jangan salah, ini bukan tentang sintaks HTML atau CSS. Jadi apa? Begini, coba tampilkan halaman website ini dengan menggunakan telnet. Benar, bukan browser, tapi telnet.

Kalau sudah bisa browsing dengan telnet, sekarang coba untuk baca email via telnet. Menggunakan protokol POP3 atau IMAP tentunya. Punya account Gmail kan? Hare gene gak punya? Ya bagus, kalo punya coba aktifkan fitur POP3nya, setelah itu buka dengan telnet.

Unicode itu penting supaya aplikasi kita tetap bisa diinstal di komputer orang Jepang atau Korea, atau komputer berbahasa Sansekerta.

Pemahaman lebih dari satu bahasa itu penting agar wawasan kita terbuka. Bahwa tidak ada bahasa yang one-fit-all, bahwa ada cara berpikir yang berbeda dalam tiap bahasa, bahwa komunitas tiap bahasa berbeda budayanya. Semua ini akan berkontribusi dalam pendewasaan kita dalam berdiskusi dan menanggapi perbedaan (terutama pendapat).

Satu lagi, trend bahasa pemrograman adalah, tiap sepuluh tahun, market leader berganti. Dulu COBOL, kemudian C++, sekarang Java. Jadi, kemampuan belajar bahasa baru sangat penting. Bukan cuma bahasanya yang penting, tapi kemampuan belajarnya yang lebih penting.

Di tempat saya bekerja, penggunaan version control adalah wajib. Ini standar (de facto) internasional. Kalau kita punya project opensource, baik di Sourceforge, Apache, Codehaus, dan semua hosting project opensource, pasti kita akan diberikan version control. Silahkan download dan coba gunakan CVS atau Subversion.

Ok, itu standar minimal saya. Menurut Anda terlalu sulit? Hmm .. kalau begitu dunia IT menjadi programmer nampaknya kurang cocok buat Anda. Silahkan coba karir lainnya, misalnya notaris atau sopir busway

sumber:http://endy.artivisi.com/blog/life/p...at-programmer/