Facebook Query Language (FQL) by

31
May
0

Facebook Query Language หรือ FQL เป็นภาษา query ที่ใช้ในการคัดกรองข้อมูลหรือดึงข้อมูลที่เราต้องการจาก Facebook โดยตรง ซึ่งการเขียนจะมีลักษณะคล้ายกับภาษา SQL นั่นคือมีรูปแบบเป็น

SELECT (field) FROM (table) WHERE (condition)

และเราสามารถใช้ operator AND, OR, NOT ได้อีกด้วย แต่สิ่งที่ FQL แตกต่างจาก SQL ก็คือ FQL จะไม่อนุญาตให้เราทำการ join table กันได้ ซึ่งถ้าเราต้องการจะใช้ข้อมูลที่มากกว่า 1 ตาราง เราจะใช้ IN เพื่อทำการเชื่อมข้อมูลระหว่างตาราง และ ระหว่าง 2 ตารางที่จะเชื่อมข้อมูลกัน จะต้องมี field ที่เก็บข้อมูลเหมือนกันอยู่ ซึ่งจะเรียก field นี้ว่าเป็น indexable

หลายคนที่อาจจะใช้ Graph API อาจจะสงสัยว่าในเมื่อเรามี Graph API อยู่แล้ว ซึ่งก็สามารถใช้ในการดึงข้อมูลมาใช้ได้เหมือนกัน แล้วทำไมต้องใช้ FQL อีก นั้นก็เป็นเพราะว่า Graph API ไม่สามารถที่จะดึงข้อมูลเป็นชุดๆได้ เช่นหากเราต้องข้อมูลเป็น username, user_id, gender และ birthday ของเพื่อน ถ้าเราใช้ Graph API เราจำเป็นต้องได้รายชื่อเพื่อนทั้งหมดของเรามาก่อน หลังจากนั้นก็จะได้ user_id กับ username มา แล้วจึงใช้ข้อมูลที่ได้มาไปหาข้อมูล gender และ birthday ของเพื่อนอีกที ซึ่งจะเห็นว่าต้องทำหลายขั้นตอนมาก แต่ถ้าเราใช้ FQL สามารถทำได้โดยเขียนภาษา query ตามนี้

SELECT username, uid, sex, birthday FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

มาถึงตรงจุดนี้ อาจมีหลายคนสงสัยว่า แล้วเราจะรู้ได้อย่างไรว่าฐานข้อมูลมีตารางอะไรบ้าง และแต่ละตารางมี field อะไรให้ใช้บ้าง เราสามารถเข้าไปดูได้อ่าน Document และ Reference ได้ที่ https://developers.facebook.com/docs/reference/fql/ ซึ่งลิ้งค์นี้จะบอกข้อมูลเกี่ยวกับตารางและ field เอาไว้ชัดเจน ว่าทาง facebook อนุญาตให้เราสามารถใช้ข้อมูลส่วนไหนได้บ้าง และทาง Facebook ยังมี tool ที่เอาไว้ให้เราใช้ทดสอบ query ที่เราเขียนขึ้นมาได้อีกด้วย ผ่านทาง Graph API Explorer https://developers.facebook.com/tools/explorer?method=GET&path=100001055377057 ซึ่งเมื่อกดลิ้งค์เข้ามาแล้วจะเจอเพจหน้าตาแบบนี้ครับ

fql_tutorial2

หลังจากนั้นตรงที่เป็นลิ้งค์ https://graph.facebook.com/ ให้พิมพ์เพิ่มหลังเครื่องหมาย “/” ไปว่า “fql?q=” แล้วตามด้วย query ที่เราเขียนขึ้นมา
แล้วกด submit เราก็จะได้ผลลัพธ์จากการ query แสดงผลที่ด้านล่างนั้นเอง ทั้งนี้ทั้งนั้น การที่เราจะดึงข้อมูลต่างๆจากตารางมาได้ เราจำเป็นต้องทำการขอ Permissions ต่างๆด้วย ซึ่งข้อมูลในแต่ละ Field จะมีการระบุเอาไว้อยู่แล้วว่าต้องมีการใช้ Permissions ใดบ้าง ดังนั้น ถ้าคิดว่าเขียน query ได้ถูกต้องแน่นอนแล้ว แต่ว่าผลลัพธ์ไม่ขึ้น ให้ลองตรวจสอบดูดีๆนะครับ ว่าได้ทำการขอ permissions ไปหรือเปล่า

หมดเพียงเท่านี้แล้วครับ เรื่องของ Facebook Query Language สำหรับคนที่เคยเขียน SQL มาแล้ว น่าจะฝึกฝนได้ไม่ยากนะครับ ส่วนคนที่ไม่เคยเขียน SQL มาก่อนก็ไม่ต้องน้อยใจไปครับ ของแบบนี้ต้องค่อยๆศึกษาไปเรื่อยๆ เดี๋ยวเราก็เขียนได้ครับ ^^

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน