จับ facebook-php-sdk มาใส่ใน CI กว่าจะได้เป็นตัวเป็นตน..

ยกที่ 1 ตอนแรกยกเจ้าตัว facebook.php เอาไปใส่ใน Controller เลยล่ะกัน จ๊ากก… โค้ดเยอะเกิน

ยกที่ 2 ย้ายไปอยู่ Model ล่ะกัน มีอะไรจะได้เรียกใช้ Oh Shit !! จะเรียกยังไงล่ะเนี้ย เอา APP_API กับ APP_KEY ไปไว้ใน Config แล้วเรียกมาใช้ แง่ว…เรียกใช้ยังไงว่ะเนี้ย

ยกที่ 3 ย้ายไปอยู่ Library ดีกว่า แล้วก็เริ่มต้นด้วย $this->load->library(‘facebook’); อันนี้ดูเหมือนจะ Work หึหึ

ยกที่ 4 และแล้วเจ้าตัว The URI you submitted has disallowed characters. มันโผล่มาไงเนี้ย จัดการเจ้า $config[‘permitted_uri_chars’] = ”; ปิดจ๊อบกันไปเลย

ยกที่ 5 – -” มันพาเพื่อนโผล่ออกมาอีกตัว 404 Page Not Found. The page you requested was not found. รู้สึกว่างานเข้าชุดใหญ่ล่ะ ตรงไหนมัน เรียกออกมาแล้วไม่เจอฟ่ะ เช็คดูตรง Controller ไปปิดเจ้าตัว $this->load->view(‘main_view’); ยังไม่หายอีก เป็นเพราะไป require_once ‘application/library/facebook.php’; ใน library ป่าวเนี้ย ตัดออกก็ยังไม่หาย เฮ้ย…เป็นไปได้ไงว่ะเนี้ย แล้วมันไปเรียกอะไร แล้วหาไม่เจอล่ะเนี้ย

ยกที่ 6 มันต้องผิดกันตอน Controller ไปเรียกอะไรเข้ามา แล้ว View ไม่ออกแน่ๆเลย ลองไปเปลี่ยน $route['default_controller'] = “welcome”; ซะ Double Kill……. http://facebook.ilovemysassygirl.com/xxxx มันออกมาได้อ่ะ แต่เจ้า http://apps.facebook.com/xxxxx มันเล่น 404 เฉยเลย เกิดไรขึ้น

ยกที่ 7 งานนี้ต้องให้ CI มาบอกความจริง แล้วก็ไปเปิด $config['log_threshold'] = 4; มาม่ะ มาดูว่าเกิดไรกันขึ้น

DEBUG - 2010-07-04 11:50:13 --> Config Class Initialized
DEBUG - 2010-07-04 11:50:13 --> Hooks Class Initialized
DEBUG - 2010-07-04 11:50:13 --> URI Class Initialized
ERROR - 2010-07-04 11:50:13 --> 404 Page Not Found --> fb_sig_in_iframe=1&fb_sig_iframe_key=7d0665438e81d&*/?^$#.....

โห้ย….ช่วยได้มากเลย แล้วมันคืออะไร ดูท่าแล้ว งานนี้มันเล่น uri ล้วน ๆ เลยนี้หว่า

ยกที่ 8 จัดการ $config['uri_protocol'] = “PATH_INFO”; จบข่าวเลยคับ 555+
สุดยอดจริงๆเลยกุนิ งมเข้าไปได้ยังไงว่ะเนี้ย ทึ่งในความมั่วของตัวเอง Facebook มา Hello World ใน CI แล้วคับ…เอิ๊ก ๆๆๆ

งานนี้ดูเหมือนจะต้องกลับมาแก้ใหม่แน่ ๆ นี้ขนาดแค่ Connect นะเนี้ย

หวังไว้ว่า
$config['index_page'] = ”;
กับเจ้าตัว

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

มันคงไม่เป็นไรนะ

แล้วเจ้า 3 ตัวนี้จะเล่นมันตัวไหนดีว่ะเนี้ย หึหึ

$config['base_url']	= 'http://'.$_SERVER['HTTP_HOST'].'/';

$config['base_url']	= 'http://xxxx.ilovemysassygirl.com/';

$config['base_url']	= "http://apps.facebook.com/xxxx/";

อันสุดท้ายน่าจะใช้ได้นะ ก็ขนาดเจ้า facebook มันยังใช้อันนี้เลย
แต่มันก็ยังไปเรียกอันที่ 2 มาอยู่ดีนีหว่า
อันแรกมันดูเหมือนจะเป็น AUTO นะ ก็ให้มันไปเลือกกันเอาเอง หุหุ

flowchart ออกแบบเว็บ app facebook (iframe) coding…

	require_once 'facebook.php';	

	$config['appid' ] = 'xxxxxxxxxxxxxxx';
	$config['api'   ] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
	$config['secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

	$facebook = new Facebook(array(
	  'appId'  => $config['appid'],
	  'secret' => $config['secret'],
	  'cookie' => true,
	));

	$session = $facebook->getSession();
	$loginUrl = $facebook->getLoginUrl(
			array(
			       'canvas'    => 1,
			       'fbconnect' => 0,
			       'req_perms' => 'publish_stream'
			)
	);

	$uid = null;
	$fbme = null;

	if (!$session) {
		echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
		exit;
	}else{
		try {
			$uid = $facebook->getUser();
			$fbme = $facebook->api('/me');
		} catch (FacebookApiException $e) {
			echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
			exit;
		}
	}

flowchart ออกแบบเว็บ app facebook (iframe)

ตัวแบบ flowchart ของ app facebook ตัวที่ 2  คิดว่าจะทำเป็น เกมส์ RPG แบบเล็ก ๆ ออกแบบไปๆมาๆ ชักจะไม่เล็กแหะ ตอนแรกก่ะว่าจะใช้ FBML เฉย ๆ นะ ไม่คิดจะไปยุ่งกับ iframe เลย ทำเข้าจริงๆ ก็ได้เห็นข้อจำกัดของ FBML พอสมควร เรื่องของเรื่องคือ อยากจะใช้ ajax น่ะ

M-O-S-2

  • lv1 @@ e:1-8
  • lv2 @@ p:+3 @@ e:8-25
  • lv3 @@ p:+3 @@ e:25-53
  • lv4 @@ p:+3 @@ e:53-91
  • lv5 @@ p:+3 @@ e:91-138
  • lv6 @@ e:138-???
  • q1
    m:216-324
    e:+1
    m:-1
    levle : 0%,7%,14%,21%,28%,35%,42%,50%,57%,64%,71%,78%,85%,92%
  • q2
    m:597-895
    e:+2
    m:-2
    level : 0%,7%,14%,21%,28%,35%,42%,50%,57%,64%,71%,78%,85%,92%
  • q2 lv2
    m:597-895
    e:+2
    m:-2
    level : 0%,7%,14%,21%,28%,35%,42%,50,57%,64%,71%,78%,85%,92%
  • q3
    m:740-1110
    e:+2
    m:-2
    level : 0%,7%,14%,21%,28%,35%,42%,50,57%,64%,71%,78%,85%,92%
  • q4
    m:2424-3636
    e:+3
    m:-3
    level : 0%,7%,14%,21%,28%,35%,42%,50,57%,64%,71%,78%,85%,92%
  • q5
    m:3750-5624
    e:+3
    m:-3
    level : 0%,7%,14%,21%,28%,35%,42%,50,57%,64%,71%,78%,85%,92%

การ config ตัวแปรของ app บน localhost และ host จริงๆ

ตอนแรกกลัวว่าโค้ดแบบนี้มันจะเป็นโค้ดขยะ ตอนที่อัพขึ้น host จริงๆ

ตอนแรก ๆ ก็พยายามที่จะสร้างสภาพแวดล้อมต่างๆ ของตัว app ให้เหมือนอยู่บน host จริง ให้มากที่สุด เพื่อที่ตอนอับขึ้น host จะได้ไม่ต้องมาแก้ config โค้ดใหม่ทุกครั้ง ในตอนที่พัฒนาโค้ดบน localhost ก็จะมีหลาย ๆ โปรเจคที่อยู่ในเครื่อง การจัดสรรค์งานที่อยุ่ในแต่ละ folder ไม่ให้มันตีกัน มันช่างเป็นเรื่องยากจริง ๆ

if($_SERVER['HTTP_HOST'] == 'localhost'){
	$config['base_url']	= 'http://'.$_SERVER['HTTP_HOST'].'/bcrpg/';
}else{
	$config['base_url']	= 'http://'.$_SERVER['HTTP_HOST'].'/';
}

อยากแรกต้องกำหนดสภาพแวดล้อมออกเป็นส่วน ๆ ก่อน แล้วค่อยกำหนดค่าเฉพาะให้กับสภาพแวดล้อมแต่ละส่วนเอาไปใช้

นึกถึง if ใน compiler ของภาษา c ขึ้นมาเลยทีเดียว นึกสงสัยตั้งนานว่า เราจะมีโอกาศได้ใช้คำสั่งแบบนี้ไหมเนี้ย

Get Adobe Flash playerPlugin by wpburn.com wordpress themes