<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>masputih &#187; Facebook</title>
	<atom:link href="http://masputih.com/category/facebook/feed" rel="self" type="application/rss+xml" />
	<link>http://masputih.com</link>
	<description>Coder for Hire</description>
	<lastBuildDate>Mon, 24 May 2010 08:48:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Facebook AS3 API : The Basics</title>
		<link>http://masputih.com/2009/05/facebook-as3-api-the-basics</link>
		<comments>http://masputih.com/2009/05/facebook-as3-api-the-basics#comments</comments>
		<pubDate>Sat, 02 May 2009 17:18:01 +0000</pubDate>
		<dc:creator>Anggie Bratadinata</dc:creator>
				<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[actionscript]]></category>

		<guid isPermaLink="false">http://masputih.com/?p=266</guid>
		<description><![CDATA[Repost artikel yg sudah pernah saya tulis di blog yang lama Dalam tutorial ini saya akan tunjukkan cara pembuatan aplikasi Flash/Flex untuk Facebook dengan menggunakan Facebook AS3 API yang resmi di-support oleh Facebook &#38; Adobe. Facebook AS3 API adalah library yang memungkinkan kita membuat aplikasi Flash/Flex yang bisa mengakses data dari Facebook tanpa memerlukan skrip [...]]]></description>
			<content:encoded><![CDATA[<p></p><blockquote><p>Repost artikel yg sudah pernah saya tulis di <a href="http://old.masputih.com">blog yang lama</a></p></blockquote>
<p>Dalam tutorial ini saya akan tunjukkan cara pembuatan aplikasi Flash/Flex untuk Facebook dengan menggunakan Facebook AS3 API yang resmi di-support oleh Facebook &amp; Adobe.</p>
<p><a href="http://code.google.com/p/facebook-actionscript-api/">Facebook AS3 API</a> adalah library yang memungkinkan kita membuat aplikasi Flash/Flex yang bisa mengakses data dari Facebook tanpa memerlukan skrip di sisi server. Kalo kita mengeset aplikasi kita sebagai aplikasi “Desktop”, kita bisa langsung menjalankan aplikasi di komputer kita. Jadi nggak perlu upload ke server. Selama proses development, umumnya kita banyak berkutat di sisi desktop , nanti kalo aplikasi sudah siap untuk testing baru kita upload ke server.</p>
<p><span id="more-266"></span></p>
<h3>Set Up</h3>
<p>Langkah pertama yang kita lakukan adalah mengunjungi Facebook Developer Home untuk mengeset aplikasi yang akan kita buat. Buka situs tersebut lalu klik tombol Set Up New Application.</p>
<p>Pada form “Essential Information”, kita isikan nama aplikasi yang akan kita buat. Klik “Agree”, lalu “Save Changes”. </p>
<div id="attachment_267" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/76" rel="attachment wp-att-267"><img src="http://masputih.com/uploads/2009/05/76-300x167.jpg" alt="Create Application" title="Create Application" width="300" height="167" class="size-medium wp-image-267" /></a>
	<p class="wp-caption-text">Create Application</p>
</div>
<p>Di halaman “Basic Settings”, catat API Key dan Secret Key.</p>
<div id="attachment_268" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/77" rel="attachment wp-att-268"><img src="http://masputih.com/uploads/2009/05/77-300x127.jpg" alt="Secret &amp; API Keys" title="Secret &amp; API Keys" width="300" height="127" class="size-medium wp-image-268" /></a>
	<p class="wp-caption-text">Secret &amp; API Keys</p>
</div>
<p>Selanjutnya, kita klik menu “Advanced”. Di sini untuk “Application Type” kita pilih Desktop karena sementara kita hanya menjalankan aplikasi secara lokal dan kalo kita ingin aplikasi kita bisa dicoba oleh orang lain, non-aktifkan juga modus Sandbox. Klik Save Changes. </p>
<div id="attachment_269" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/78" rel="attachment wp-att-269"><img src="http://masputih.com/uploads/2009/05/78-300x127.jpg" alt="Application Type" title="Application Type" width="300" height="127" class="size-medium wp-image-269" /></a>
	<p class="wp-caption-text">Application Type</p>
</div>
<p>Terakhir, kita unduh Facebook AS3 API di Googlecode . Kita bisa mengunduh dalam bentuk .zip atau .swc, namun .zip lebih baik karena kita bisa melihat sourcecode-nya. Kita unduh juga dokumentasinya. Kalo Anda punya SVN client, saya sarankan Anda melakukan SVN check-out supaya mudah untuk mengikuti update terbaru.</p>
<h3>AS3 Project</h3>
<p>Kita buat AS3 project di FlexBuilder atau FlashDevelop ( saya menggunakan FlashDevelop ). Jangan lupa tambahkan Facebook AS3 API ke dalam library path atau kopi direktori <code>source/actionscript/com</code> ke dalam source folder.</p>
<h4>Download Project</h4>
<div class="box dl_box"><a href="http://masputih.com/wordpress/wp-content/plugins/download-monitor/download.php?id=helloas3.rar" title="Downloaded 576 times">→ HelloAS3.rar</a></div>
<p>Dalam project ini, kita menggunakan komponen TextArea dan Button dari Flash CS4 untuk menghemat ukuran file. framework.swc kita kopi dari Flex SDK supaya kita bisa menggunakan class ObjectUtil untuk menampilkan objek dalam format yang lengkap (nama instance dan propertinya) supaya debugging lebih gampang. Tambahkan kedua .swc ke dalam project library ( di FlashDevelop : klik kanan swc → Add To Library ).</p>
<blockquote><p>Saya tidak memasukkan framework.swc ke dalam project file di atas, jadi silakan Anda kopi sendiri dari Flex SDK.</p></blockquote>
<div id="attachment_278" class="wp-caption aligncenter" style="width: 264px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/79" rel="attachment wp-att-278"><img src="http://masputih.com/uploads/2009/05/79.jpg" alt="Tambahkan Flex SWC" title="Tambahkan Flex SWC" width="264" height="162" class="size-full wp-image-278" /></a>
	<p class="wp-caption-text">Tambahkan Flex SWC</p>
</div>
<div id="attachment_279" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/80" rel="attachment wp-att-279"><img src="http://masputih.com/uploads/2009/05/80-300x228.jpg" alt="Direktori Project" title="Direktori Project" width="300" height="228" class="size-medium wp-image-279" /></a>
	<p class="wp-caption-text">Direktori Project</p>
</div>
<p>Kalo Anda ingin mengikuti tutorial ini step-by-step, silakan buka file <code>MainDesktopStart.as</code> dan set file ini sebagai <em>Document Class</em>. Caranya, klik kanan lalu klik “Always Compile” dari context menu seperti gambar di bawah ini. </p>
<div id="attachment_286" class="wp-caption aligncenter" style="width: 295px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/81" rel="attachment wp-att-286"><img src="http://masputih.com/uploads/2009/05/81.jpg" alt="Setting Main Class" title="Always Compile" width="295" height="226" class="size-full wp-image-286" /></a>
	<p class="wp-caption-text">Setting Main Class</p>
</div>
<h3>API &amp; Secret Keys</h3>
<p>Pertama kita set API Key &amp; Secret Key yang kita dapat dari Facebook. Buka file Constants.as, isikan kedua key tersebut.</p>
<pre class="brush:as3">
public static const API_KEY:String = "YOURAPIKEY";
public static const SECRET_KEY:String = "YOURSECRETKEY";
</pre>
<h3>Instansiasi Facebook &amp; Login</h3>
<p>Buka file MainDesktopStart.as.  Lihat <code>initFacebook()</code> . Di dalam function ini kita lakukan instansiasi objek <code>FacebookSessionUtil</code> dan event handling untuk <code>FacebookEvent.WAITING_FOR_LOGIN</code>  dan <code>FacebookEvent.CONNECT</code>. Karena sebelum aplikasi kita bisa mengakses data user di Facebook, user yang menggunakannya harus memberi persetujuan ( otorisasi ) untuk mengakses data, kita panggil juga <code>login()</code> milik class <code>FacebookSessionUtil</code>. </p>
<pre class="brush:as3">
private function initFacebookSession():void {

	_session = new FacebookSessionUtil(Constants.API_KEY, Constants.SECRET_KEY, this.root.loaderInfo);
	_session.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, onWaitingForLogin);
	_session.addEventListener(FacebookEvent.CONNECT, onFacebookConnect);

	_session.login();

}
</pre>
<p>Sekarang kita lakukan Test Movie. </p>
<div id="attachment_287" class="wp-caption aligncenter" style="width: 286px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/92" rel="attachment wp-att-287"><img src="http://masputih.com/uploads/2009/05/92-286x300.jpg" alt="Test Movie 1" title="Test Movie 1" width="286" height="300" class="size-medium wp-image-287" /></a>
	<p class="wp-caption-text">Test Movie 1</p>
</div>
<p>Pada saat eksekusi <code>_session.login()</code>,  <code>_session</code> menyiarkan <code>FacebookEvent.WAITING_FOR_LOGIN</code> yang di-handle oleh <code>onWaitingForLogin()</code> dan browser akan menampilkan popup window seperti gambar di bawah ini setelah Anda login ke Facebook. Ini tandanya aplikasi kita sudah mendapat otorisasi.</p>
<p>Kalo nggak, pastikan API &amp; Secret Key yang Anda masukkan sudah benar dan jangan lupa, kalo Anda punya PopUp Blocker, matikan dulu. </p>
<div id="attachment_290" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/82" rel="attachment wp-att-290"><img src="http://masputih.com/uploads/2009/05/82-300x140.jpg" alt="Logged In" title="Logged In" width="300" height="140" class="size-medium wp-image-290" /></a>
	<p class="wp-caption-text">Logged In</p>
</div>
<p>Sekarang ini, kalo aplikasi Anda dijalankan oleh orang lain atau Anda login ke account lain, bukan account yang Anda gunakan untuk mendaftarkan aplikasi ini, maka Facebook akan menampilkan dialog meminta otorisasi seperti ini, sebelum pemberitahuan seperti gambar di atas:</p>
<div id="attachment_291" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/83" rel="attachment wp-att-291"><img src="http://masputih.com/uploads/2009/05/83-300x102.jpg" alt="Allow Access Dialog" title="Allow Access ?" width="300" height="102" class="size-medium wp-image-291" /></a>
	<p class="wp-caption-text">Allow Access Dialog</p>
</div>
<p>Berikutnya, kita memberi tahu aplikasi bahwa kita sudah login dan aplikasi sudah mendapat otorisasi dengan mengklik tombol “OK” di pojok kanan bawah aplikasi kita.</p>
<p>Kita tambahkan kode untuk validasi login di <code>onLoginBtnClick()</code> sehingga pada saat kita klik OK, <code>_session </code>akan melakukan validasi &amp; koneksi ke Facebook.  <code>validateLogin()</code> berguna untuk memastikan bahwa aplikasi sudah mendapat otorisasi, jadi kalo Anda mengklik OK sebelum Facebook bilang <cite>You may now close this window …</cite>, maka <code>_session.login()</code> otomatis akan dieksekusi lagi. Sebaliknya, kalo aplikasi sudah mendapat otorisasi, maka aplikasi akan melakukan koneksi ke Facebook dan saat aplikasi menerima respons balik dari Facebook, _session akan menyiarkan <code>FacebookEvent.CONNECT</code> yang di-handle oleh <code>onFacebookConnect()</code>.</p>
<pre class="brush:as3">
private function onLoginBtnClick(e:Event):void {
	_console.appendText("\n\n---\nValidating...");

	//validate login and connect to FB
	_session.validateLogin();

}
</pre>
<p>Di dalam <code>onFacebookConnect()</code> kita pastikan bahwa respon yang diterima dari Facebook tidak mengandung pesan kesalahan dengan cara menguji properti <code>success</code> dari <code>FacebookEvent</code>. Jika ada kesalahan, properti ini akan bernilai <code>false</code>. Jika tidak, maka properti ini bernilai <code>true</code>, kita akan mendapat session key, dan kita eksekusi <code>getUserInfo()</code>.</p>
<p>Kita tambahkan beberapa baris kode seperti berikut :</p>
<pre class="brush:as3">
private function onFacebookConnect(e:FacebookEvent):void {

	//if connection fails, reinitiate login
	if (!e.success) {

		_console.appendText("\n\n---\nCannot connect to Facebook!");
		_console.appendText("\n\n---\n" + ObjectUtil.toString(e.error));				

		_session.login()

		return;
	}

	_console.appendText("\n\n---\nYou are now connected to Facebook!");
	_console.appendText("\nYour session key : " + _session.facebook.session_key);

	//hide login btn
	_loginBtn.visible = false;

	getUserInfo();

}
</pre>
<h3>Getting User Data</h3>
<p>Kita lihat function <code>getUserInfo()</code>. Kita akan gunakan function ini untuk mengambil data user yang menggunakan aplikasi ini. Kita tambahkan beberapa baris ke dalam <code>getUserInfo(</code>) seperti ini:</p>
<pre class="brush:as3">
private function getUserInfo():void {
	_console.appendText("\n\n---\nGetting your info");

	var fields:Array = [GetInfoFieldValues.NAME, GetInfoFieldValues.BIRTHDAY];
	var call:FacebookCall = _session.facebook.post(new GetInfo([_session.facebook.uid], fields ));
	call.addEventListener(FacebookEvent.COMPLETE, onComplete_getUserInfo);

}
</pre>
<p>Variabel fields berisi data apa saja yang ingin kita ambil dari data user yang bersangkutan. Di sini kita cukup ambil dua buah data yaitu “name” dan “birthday”. Kita bisa memasukkan <code>String</code> ke dalam variabel fields seperti ini :</p>
<pre class="codeblock"><code>
var fields:Array = ["name","birthday"];

</code></pre>
<p>Tapi lebih baik jika kita menggunakan konstanta yang ada di class GetInfoFieldValues untuk menghindari salah tulis.</p>
<p>Variabel call adalah objek bertipe <code>FacebookCall</code>  yang merepresentasikan eksekusi Facebook API. Karena kita ingin mengambil data user, maka kita buat objek <code>GetInfo</code>, dan kita beri argumen berupa properti <code>_session.facebook.uid</code> yang berisi id dari user yang menggunakan aplikasi ini dan variabel <code>fields</code> di atas.</p>
<p>Pada saat respons dari Facebook diterima, objek call akan menyiarkan <code>FacebookEvent.COMPLETE </code>yang di-handle oleh <code>onComplete_getUserInfo()</code>  yang akan menampilkan nama &amp; tanggal lahir user di Console dan kemudian mengeksekusi <code>getFriendsInfo()</code>. Untuk itu kita tambahkan kode ke dalam function tersebut seperti di bawah ini:</p>
<pre class="brush:as3">
private function onComplete_getUserInfo(e:FacebookEvent):void {

	if (!e.success) {
		_console.appendText("\n\n---\nERROR : " + ObjectUtil.toString(e.error));
		return;
	}

	var user:FacebookUser = GetInfoData(e.data).userCollection.getItemAt(0) as FacebookUser;
	_console.appendText("\n\n---\nHello " + user.name + "!");
	_console.appendText(" You were born on " + user.birthday);

	getFriendIDs(_session.facebook.uid);

}
</pre>
<p>Variabel <code>user</code> merepresentasikan useryang sedang menggunakan aplikasi ini. Tipe datanya adalah <code>FacebookUser</code>. Di sini kita perlu melakukan <em>type-casting</em> terhadap data yang dikirim bersama <code>FacebookEvent</code> menjadi <code>GetInfoData</code> yang memiliki properti <code>userCollection</code>. Karena kita hanya meminta data satu orang user, maka user ini berada di posisi index 0  dari <code>userCollection</code>.</p>
<p>Karena <code>userCollection.getItemAt(0)</code> memberikan data bertipe <code>Object</code> maka kita lakukan <em>type-casting</em> ke tipe data <code>FacebookUser</code>. Baris-baris berikutnya menampilkan data user. Baris terakhir mengeksekusi <code>getFriendIDs()</code>.</p>
<h3>Getting Friends IDs</h3>
<p><code>getFriendIDs() </code>berfungsi untuk meminta daftar semua friends . Jadi di sini, seperti di <code>getUserInfo()</code>, kita buat variabel call yang bertipe <code>FacebookCall</code>. Berbeda dengan <code>getUserInfo()</code>, kita membuat objek <code>GetFriends</code> bukan <code>GetInfo</code>. Kita juga mengeset <code>onComplete_getFriendIDs()</code> sebagai listener untuk <code>FacebookEvent.COMPLETE</code>.</p>
<p>Kita tambahkan kode ke <code>getFriendIDs()</code> seperti berikut:</p>
<pre class="brush:as3">
private function getFriendIDs(uid:String):void {

	var call:FacebookCall = _session.facebook.post(new GetFriends(null, uid ));
	call.addEventListener(FacebookEvent.COMPLETE, onComplete_getFriendIDs);

}
</pre>
<p>Kita lanjutkan ke <code>onComplete_getFriendIDs()</code>.</p>
<p>Di sini data yang diterima bersama <code>FacebookEvent.COMPLETE</code> bertipe <code>GetFriendsData</code>. Jadi, pertama kita buat variabel lokal bernama data yang bertipe <code>GetFriendsData</code> dan mengisinya dengan <em>event data</em> yang sudah di-type-cast menjadi <code>GetFriendsData</code>.  Empat baris berikutnya, menampilkan banyaknya friends  yang bisa kita ketahui dari panjang properti friends.</p>
<p>Baris-baris berikutnya menampilkan semua ID friends, dengan memanfaatkan properti rawResult yang merupakan data bertipe <code>XML</code>. Di sini kita menggunakan sintaks <em>E4X</em> untuk mengakses semua node di dalam <code>XML</code> tersebut.</p>
<p>Baris terakhir, menggabungkan node value yang disimpan di dalam <code>Array</code> menjadi sebuah <code>String</code> dan menampilkannya.</p>
<pre class="brush:as3">
private function onComplete_getFriendIDs(e:FacebookEvent):void {

	if (!e.success) {
		_console.appendText("\n\n---\nERROR : " + ObjectUtil.toString(e.error));
		return;
	}

	var data:GetFriendsData = GetFriendsData(e.data);
	if (data.friends.length > 0) {
		_console.appendText(". You have " + data.friends.length + " friends.");
	}else {
		_console.appendText(". You have no friends.");
		return;
	}

	var xml:XML = new XML(data.rawResult);
	var ids:Array = [];

	for each( var x:XML in xml.*) {
		ids.push(x);
	}

	_console.appendText("Their IDs are : \n"+ ids.join(' , ') +"\n");
}
</pre>
<p>Sekarang kita coba jalankan aplikasi. Kalo semuanya benar, Anda akan lihat aplikasi berjalan seperti gambar di bawah ini. Kalo tidak, silakan cocokkan kode yang Anda tulis dengan<code> MainDesktop.as</code>.</p>
<div id="attachment_294" class="wp-caption aligncenter" style="width: 263px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/84" rel="attachment wp-att-294"><img src="http://masputih.com/uploads/2009/05/84-263x300.jpg" alt="Test Movie 2" title="Test Movie 2" width="263" height="300" class="size-medium wp-image-294" /></a>
	<p class="wp-caption-text">Test Movie 2</p>
</div>
<h3>Going Online</h3>
<p>Pertama saya sarankan Anda bikin satu account Facebook lagi, khusus untuk  simulasi penggunaan aplikasi oleh orang lain. Account ini sangat berguna khususnya waktu kita menguji proses otorisasi &amp; verifikasi karena developer account Anda secara otomatis mengotorisasi aplikasi yang Anda buat sendiri.</p>
<p>Supaya aplikasi kita bisa digunakan/dimuat ke dalam Facebook Canvas, kita perlu sedikit memodifikasi kode. Sebenarnya nggak banyak yang harus diubah, tapi lumayan bikin pusing karena dokumentasi yang nggak lengkap &amp; contoh-contoh aplikasi yang masih menggunakan API versi lama ( versi 2 ).</p>
<p>Ada beberapa cara untuk memuat aplikasi yang kita buat ke dalam Facebook Canvas. Informasi lengkapnya bisa Anda baca sendiri di  Facebook Architecture Overview.  Di sini, kita pilih cara yang paling gampang, dengan menggunakan salah satu tag FBML yaitu <code>fb:swf</code>.</p>
<p>Kita upload dulu file SWF aplikasi yg kita buat ke server. Terus kita buat file “index.php” yg isinya seperti ini:</p>
<pre class="brush:as3">
<fb:swf id="hello"
	swfsrc="http://facebook.masputih.com/hello-as3/HelloAS3.swf"
	swfbgcolor='FFFFFF'
	width="400" height="400"/>
</pre>
<p>Berikut ini struktur direktori di host saya. </p>
<div id="attachment_299" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/85" rel="attachment wp-att-299"><img src="http://masputih.com/uploads/2009/05/85-300x103.jpg" alt="Server Directory" title="FTP " width="300" height="103" class="size-medium wp-image-299" /></a>
	<p class="wp-caption-text">Server Directory</p>
</div>
<p>Kembali ke Application Settings di Facebook. Kita ubah tipe aplikasi menjadi “Web” lalu kita buka menu Canvas  dan kita masukkan juga URL dari file index.php yang sudah kita buat. Terakhir kita pastikan bahwa Render Method adalah FBML, bukan iFrame.</p>
<div id="attachment_302" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/86" rel="attachment wp-att-302"><img src="http://masputih.com/uploads/2009/05/86-300x128.jpg" alt="Application Type : Web" title="Application Type : Web" width="300" height="128" class="size-medium wp-image-302" /></a>
	<p class="wp-caption-text">Application Type : Web</p>
</div>
<div id="attachment_303" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/87" rel="attachment wp-att-303"><img src="http://masputih.com/uploads/2009/05/87-300x187.jpg" alt="Canvas &amp; Render Method" title="Canvas &amp; Render Method" width="300" height="187" class="size-medium wp-image-303" /></a>
	<p class="wp-caption-text">Canvas &amp; Render Method</p>
</div>
<h3>Verifikasi Session</h3>
<p>Pada saat sebuah SWF dimuat ke dalam canvas melalui fb:swf, Facebook akan menginjeksi flashvars. Yang dapat kita gunakan untuk memverifikasi apakah aplikasi sudah mendapat otorisasi untuk mengakses data adalah <code>fb_sig_session_key</code>. Gambar berikut ini menunjukkan isi flashvars yang diinjek oleh Facebook.</p>
<div id="attachment_304" class="wp-caption aligncenter" style="width: 283px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/88" rel="attachment wp-att-304"><img src="http://masputih.com/uploads/2009/05/88-283x300.jpg" alt="Session Key" title="Session Key" width="283" height="300" class="size-medium wp-image-304" /></a>
	<p class="wp-caption-text">Session Key</p>
</div>
<p>Buka file <code>MainWeb.as</code>, perbedaan dengan <code>MainDesktop.as</code>  hanya pada <code>checkSession()</code> yang berfungsi untuk mengecek keberadaan <em>session key</em>. </p>
<p>Kalo <em>session key</em> tidak ditemukan atau bernilai <code>null</code>, berarti user belum pernah menggunakan aplikasi ini sebelumnya, jadi di sini kita perlu memanggil<code> _session.login()</code>. Sebaliknya, kalo session key ditemukan, kita panggil <code>_session.verifySession()</code> yang kemudian akan melakukan koneksi dengan Facebook.</p>
<pre class="brush:as3">
private var _flashvars:Object;
private function initFacebookSession():void {

	_flashvars = this.root.loaderInfo.parameters;

	_console.appendText("\n\n---\Flashvars : " + ObjectUtil.toString(_flashvars));

	_session = new FacebookSessionUtil(Constants.API_KEY, Constants.SECRET_KEY, this.root.loaderInfo);
	_session.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, onWaitingForLogin);
	_session.addEventListener(FacebookEvent.CONNECT, onFacebookConnect);

	checkSession();

}

/**
 * check the flashvars
 * if there's no session key, initiate a login process
 */
private function checkSession():void {

	_console.appendText("\n\n---\nChecking session key...");

	if (_flashvars.fb_sig_session_key != null) {
		_session.verifySession();
	}else {
		_session.login();
	}
}
</pre>
<p>Silakan akses aplikasi Anda melalui URL : http://apps.facebook.com/nama-aplikasi-anda/. Kalo semua sudah benar, Anda bisa melihatnya dimuat ke dalam Facebook Canvas. Teman Anda juga bisa menggunakan aplikasi ini.</p>
<p>Sebagai perbandingan, silakan coba aplikasi yang saya buat di sini : <a href="http://apps.facebook.com/hello-as/">http://apps.facebook.com/hello-as/</a></p>
<div id="attachment_305" class="wp-caption aligncenter" style="width: 232px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/89" rel="attachment wp-att-305"><img src="http://masputih.com/uploads/2009/05/89-232x300.jpg" alt="Facebook Application Test" title="Facebook Application Test" width="232" height="300" class="size-medium wp-image-305" /></a>
	<p class="wp-caption-text">Facebook Application Test</p>
</div>
<div id="attachment_308" class="wp-caption aligncenter" style="width: 205px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/90" rel="attachment wp-att-308"><img src="http://masputih.com/uploads/2009/05/90-205x300.jpg" alt="Application List" title="Application List" width="205" height="300" class="size-medium wp-image-308" /></a>
	<p class="wp-caption-text">Application List</p>
</div>
<p>Ok, mudah-mudahan tutorial ini bisa membantu Anda memahami Facebook ActionScript API.</p>
<p>Pada bagian berikutnya dari artikel ini, saya akan menjelaskan bagaimana saya membuat aplikasi Flex untuk Facebook yaitu :<a href="http://apps.facebook.com/fx-friendbrowser/"> Fx Friend Browser</a>.</p>
<p>Stay tuned! <img src='http://masputih.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div id="attachment_311" class="wp-caption aligncenter" style="width: 300px">
	<a href="http://masputih.com/2009/05/facebook-as3-api-the-basics/attachment/93" rel="attachment wp-att-311"><img src="http://masputih.com/uploads/2009/05/93-300x223.jpg" alt="Fx Friend Browser" title="Fx Friend Browser" width="300" height="223" class="size-medium wp-image-311" /></a>
	<p class="wp-caption-text">Fx Friend Browser</p>
</div>
<h3>Links</h3>
<ul>
<li>Project file : <a href="http://masputih.com/wordpress/wp-content/plugins/download-monitor/download.php?id=helloas3.rar" title="Downloaded 576 times">→ HelloAS3.rar</a></li>
<li><a href="http://www.adobe.com/devnet/facebook/">Adobe Developer Connection : Facebook</li>
<li><a href="http://code.google.com/p/facebook-actionscript-api/" title="http://code.google.com/p/facebook-actionscript-api/">Facebook ActionScript API</a></li>
<li><a href="http://www.facebook.com/developers/">Facebook Developer Home</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://masputih.com/2009/05/facebook-as3-api-the-basics/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
