ถ้าคุณเป็นคนหนึ่งที่สนใจอยากจะเขียน Facebook Application คุณจำเป็นที่จะต้องมีพื้นฐานดังต่อไปนี้
- คุณต้องรู้และเข้าใจภาษา PHP ในระดับหนึ่ง (ยิ่งเก่งยิ่งดี) เพราะมันเป็นภาษาทางการในการพัฒนา Facebook Application (ภาษาอื่นก็มี แต่ไม่นับเป็นภาษาทางการ)
- คุณต้องรู้และเข้าใจหลักการของ Object Oriented Programming ซึ่งผมคิดว่าคนที่เรียนคอมพิวเตอร์มาทุกคน ล้วนเคยถูกกำหนดให้เรียนวิชานี้ทั้งนั้น (สมัยนี้นะ) ส่วนจะเรียนเป็นบทหนึ่งบทในรายวิชา หรือจะเรียนเป็นรายวิชาสามหน่วยกิต อันนี้ก็สุดแล้วแต่
- คุณต้องรู้และเข้าใจภาษา Javascript ในระดับหนึ่ง (ยิ่งเก่งยิ่งดี) เพราะมันเป็นภาษาที่สร้างลูกเล่นเสริมให้กับ Facebook Application ของคุณ
- คุณต้องรู้และเข้าใจหลักการของ Web Service เพราะมันเป็นกุญแจสำคัญในการสื่อสารระหว่าง Facebook Application กับ Facebook Platform
ทีนี้เรามาดูเรื่องที่น่าสนใจเรื่องหนึ่งกัน นั่นก็คือ Facebook Application มีทั้งหมด 3 แบบ แบบแรกเป็น Desktop Application, แบบสองเป็น Web Application และแบบสามเป็น Mobile Application
แต่ล่ะแบบล้วนมีพื้นฐานทาง Web Service ที่เหมือนกัน แต่ว่ามีกลไกปลีกย่อยที่แตกต่างกันตาม Platform ของตัวเอง โดยหัวข้อนี้จะเน้นเกี่ยวกับแบบ Web Application เป็นสำคัญ
วิธีการเรียนรู้ที่ดีที่สุดก็คือการเรียนจากคนอื่น (ผมขี้เกียจเขียนอธิบาย) ดังนั้น ขอให้พวกเราเข้าไปดูบทความที่กูรูเขียนเอาไว้แล้วก่อน (เพื่อเป็นการปูพื้นฐาน) ตามหัวข้อข้างล่างนี้
- เริ่มต้นกับการเขียน Facebook Application สำหรับผู้เริ่มต้น (PHP)
- เริ่มต้นกับการเขียน Facebook Application สำหรับผู้เริ่มต้น (PHP) (2)
- เริ่มต้นกับการเขียน Facebook Application สำหรับผู้เริ่มต้น (PHP) (3)
- เริ่มต้นกับการเขียน Facebook Application สำหรับผู้เริ่มต้น (PHP) (4)
- เริ่มต้นกับการเขียน Facebook Application สำหรับผู้เริ่มต้น (PHP) ฉบับปรับปรุง Graph API
โอเค ผมจะัถือว่าพวกเราได้อ่านบทความในย่อหน้าข้างบนครบทุกอันแล้วนะ ทีนี้เรามาอธิบายส่วนของพื้นฐาน, การขยายความ และ ส่วนเสริมกันดีกว่า
สิ่งแรกที่จะบอกก็คือ Facebook เขาก็มีพัฒนาการของเขา ดังนั้น เขาย่อมไม่หยุดอยู่กับที่ ปรับโน่นเปลี่ยนนี่ไปเรื่อย ๆ รวมทั้ง API ของเขาด้วย โดยหลังจากที่ปล่อยให้มี API เดิมให้ใช้มาราวสองถึงสามปี จนกระทั่งผู้พัฒนา Facebook Application ใช้กันจนคล่อง ติดกันจนงอมแงมแล้ว เมื่อกลาง (ค่อนปลาย) ปี พ.ศ. 2553 ที่ผ่านมา ทาง Facebook ก็ออก API ตัวใหม่ออกมา นัยว่าเพื่อจะได้ใช้ง่ายขึ้น ดีขึ้น สะดวกขึ้น บลา ๆ ๆ ๆ ๆ โดยประกาศว่าให้ Facebook Application ใหม่ ๆ ที่ถูกสร้างขึ้น จงสร้างด้วย API ใหม่โดยพลัน ส่วน Facebook Application เก่า ๆ จะยังใช้ API เดิมได้อยู่ (แต่คงอีกไม่นาน)
นอกจากนี้ทาง Facebook ก็ตัดสินใจยกเลิกภาษาของตัวเอง (Facebook สร้างภาษา FBML ออกมา มันแบบ คล้าย ๆ กับ HTML แต่ไม่เป็นที่นิยม เลยต้องเลิกไป) แล้วหันไปสนับสนุน IFrame อย่างสุดแรงม้า (เว่อร์จริง ๆ)
ทีนี้มันก็จะเกิดเป็นประเด็นขึ้นมา เพราะ Facebook จำเป็นจะต้องรักพี่เสียดายน้อง เขาก็เลยยังคงต้องเก็บคู่มือในการใช้งาน API เก่า กับคู่มือในการใช้ API ใหม่เอาไว้ แถมดันเก็บรวม ๆ กันไว้อีกต่างหาก และที่สำคัญดันอธิบายแบบแยกส่วนด้วย (เออ เอากันเข้าไป)
และที่สำคัญ มีสิ่งหนึ่งที่นักพัฒนา Facebook Application เขารู้ แต่เขาไม่ค่อยเล่าให้ฟังกัน เนื่องจากมองว่ามันเป็นพื้นฐาน มันง่าย ใคร ๆ ก็น่าจะรู้ (ไม่จริงหรอก เรื่องเล็ก ๆ ง่าย ๆ นี่แหล่ะ มีคนไม่รู้เยอะ) นั่นก็คือ Facebook API มองได้เป็น 2 ส่วนใหญ่ ๆ คือ ส่วนของ ข้อตกลง Web Service และส่วนของ SDK!!!
ส่วนของข้อตกลง Web Service อ่ะนะ เป็นมาตรฐานวิธีในการเชื่อมโยงข้อมูลระหว่าง Facebook กับ Facebook Application ของเรา ซึ่งทาง Facebook ทำคู่มือออกมาให้เราอ่านกัน (แบบโคตรละเอียด แต่ กูงง กูงง กูงง) ไม่่ว่าจะเป็นคู่มือที่ชื่อ Apps on Facebook.com (อธิบายตั้งแต่การแสดงตน, ขอใช้สิทธิ์ และทำนู่นทำนี่) หรือ Grarph API (อธิบายว่าการแสดงตน, ขอใช้สิทธิ์ และทำนู่นทำนี่ ต้องส่ง Request แบบ Web Service ไปหา Facebook เป็นจำนวนกี่ท่อน และแต่ล่ะท่อนต้องยัดอะไรใส่เข้าไปบ้าง)
ส่วนของ SDK เป็นโค้ดของโปรแกรมแบบ Open Source ซึ่งพัฒนาขึ้นด้วยภาษาต่าง ๆ เช่น PHP หรือ Javascript เป็นต้น เพื่ออำนวยความสะดวกให้กับเรา ทำให้เราไม่จำเป็นต้องเขียนโค้ดเพื่อทำตามข้อตกลง Web Service ที่ Facebook กำหนดไว้ (มีชาวบ้านเขียนไว้ให้ ว่างั้น)
ถ้าถามว่า แบบนี้ เราก็ไม่จำเป็นต้องไปดาวน์โหลดโค้ด SDK มาก็ได้นี่หว่า เพราะถ้าเราแตกฉานในข้อตกลง Web Service ของ Facebook แล้ว เราก็สามารถจะเขียน SDK เองได้? ซึ่งผมก็คิดว่าอันนั้นก็จริงอ่ะนะ แต่จะลงมือทำไปทำติ่งอะไรล่ะ ในเมื่อเราเขียนเอง เขียนไปเขียนมา สุดท้ายมันก็ออกมาเหมือนกับ SDK ที่ำเขาทำให้อยู่ดี งั้นอย่าเสียเวลาเลยว่ะ ไปใช้ SDK ที่เขาทำก็สิ้นเรื่อง
โดย SDK ที่ว่าก็สามารถไปดาวน์โหลดได้ที่ GitHub เลือกโหลดเฉพาะ PHP-SDK (PHP Client Library) กับ Connect-JS (Javascript Client Library) นะ เพราะเป็นสิ่งที่โม้ ๆ อยู่ในหัวข้อนี้ (พอเข้าไปที่หน้าจอได้แล้ว อย่าลืมเหลือบไปดูที่เยื้อง ๆ มุมขวาของ Browser ด้วยล่ะ เพราะแถว ๆ นั้นมีปุ่ม “Download Source” ให้กด ก็กดตรงนั้นนั่นแหล่ะ จะได้ดาวน์โหลดมาทั้งยวงเลย!!!)
ต้องทำความเข้าใจก่อนว่า SDK ก็คือโค้ดที่มาเขียนเพื่อครอบข้อตกลงฯ ดังนั้น มันก็อาจจะเป็นชุดของ Function หรือเป็นชุดของ Class ก็ได้ โดยในที่นี้โค้ดของ PHP Client Library อ่ะเป็น Class ในขณะที่ Javascript Client Library อ่ะเป็น Function
ทีนี้ขึ้นชื่อว่าเป็น Class หรือ Function มันก็ต้องมีคู่มือประกอบใช่แมะ ว่ามันมีพารามิเตอร์อะไรบ้าง, มี Properties อะไรบ้าง หรือมี Method อะไรให้เรียกใช้ได้บ้าง?
ข่าวดีคือ Facebook ทำคู่มือ Javascript Client Library เอาไว้ให้เราอ่านเพื่อทำความเข้าใจนะ แต่ข่าวร้ายคือ Facebook ไม่ได้ทำคู่มือ PHP Client Library เอาไว้ให้อ่ะ มันยังไม่มี ต้องเข้าไปดูในโค้ดของ SDK เอาเอง!!!
มันก็เลยทำให้เราเกิดภาระเล็ก ๆ ขึ้นมา เพราะกลายเป็นว่า นอกจากเราจะต้องเรียนรู้ API ในส่วนของข้อตกลง Web Service แล้ว เรายังต้องมาเรียนรู้เพิ่มเติม (อีกเล็กน้อย) ในการใช้งาน PHP Client Library อีกหรือนี่???
ข้อสรุปอีกอย่างหนึ่งที่เกี่ยวกับ Facebook Application ก็คือ เราสามารถจะเขียน Facebook Application ด้วย PHP Client Library ล้วน ๆ ก็ได้ หรือจะเขียนผสม ๆ กันกับ Javascript Client Library ก็ได้ (อันนี้แล้้วแต่ความจำเป็น) นอกจากนี้ ถ้าเราเขียนมันจนชำนาญแล้ว เราก็ไม่จำเป็นต้องเขียนแบบ Pure PHP อีกต่อไป เพราะเราสามารถใช้ Web Application Framework (ไม่ว่าจะเป็น CakePHP หรือ CodeIgniter) เพื่ออำนวยความสะดวกให้เราเขียน Web Application ได้ง่ายและเร็วอีกด้วย
น่าสนใจดีครับ เผื่อ FB จะมี app ดีๆนอกเหนือจากพวกเกมส์กับ survey
อยากเขียนมั่ง แต่ไม่ได้เริ่มซักทีเลยอะ T_T
แค่ข้อแรกยังไม่ผ่านเลยครับ >.<
เจ๋งสุดๆ ขอบคุณครับ
ขอบคุณครับ รวบรัดได้ใจจริงๆ
กำลังจะทำโปรเจกเรื่องนี้อยุ่ เลยค่ะ แต่ไม่ค่อยเข้าใจเลยอ่ะ
กำลังหัดเขียน แต่ก็ยัง งง ครับ
กำลังจะเริ่มครับ จะพยายาม ^^
ขอบคุณสำหรับความรู้ครับ
เยี่ยมมครับบบ
กำลังสนใจเรื่องนี้พอดี เดี๋ยวอ่านต่อไปเรื่อยๆๆค่ะ นี่เพิ่งก๊อกแรกเองค่ะ ขอบคุณที่แบ่งปันนะค่ะ
ขอบคุณคับ กำลังหาข้อมูลด้านนี้เลย
เสียดายไม่ได้เรียนมาสายเว็บมาสเตอร์ ความรู้ 0 แทบจะทุกข้อ
ผมว่าสายเว็บมาสเตอร์ โปรแกรมเมอร์นี่มีอะไรให้ทำ ให้เล่นเยอะแยะเลยนะครับ