Facebook Graph API


Core Concept: Social Graph


Facebook มี Core Concept ที่เรียกว่า Social Graph โดยมองข้อมูลแต่ละอย่าง ไม่ว่าจะเป็น User, Likes, Comments, Pages and etc. จะถูกมองเป็น Object ทั้งหมด และมองว่าข้อมูลทุกอย่างมีความสัมพันธ์กัน เช่น ความสัมพันธ์ระหว่าง User กับ User's Friend, ความสัมพันธ์ของ Post และ Post's Likes และอื่นๆ โดยในแต่ละ Object นั้นก็จะมี Uniqe ID ที่มั่นใจว่าไม่ซ้ำกันอย่างแน่นอน


Graph API

Graph API มีคุณสมบัติเป็น RESTful API (GET, POST, PUT, DELETE) ที่เป็น API แบบที่เราต้องส่ง HTTP Request เพื่อขอข้อมูลที่ต้องการในรูปแบบของ URL ไปให้กับ Server แล้วรอผลลัพธ์กลับมา ... โดย Facebook เลือกใช้ JSON เป็น Format ของ Response ที่กลับมา ... 

เราสามารถ Access Properties พื้นฐานของ Object ได้ด้วยการ Request ไปที่ id ของ Object นั้นๆ หรือถ้าเป็น Pages หรือ User ก็ Request ด้วย Username ก็ได้ 




ซึ่งข้อมูลข้างต้นนี้ ไม่จำเป็นต้อง Login ก็สามารถที่จะ Request มาใช้ได้ ... และการ Login โดยที่ไม่ขอ Permissions เลยก็จะได้ข้อมูลข้างต้นมาเป็นพื้นฐานในการใช้งาน (ข้อมูลนั้นๆ ต้องเป็น Public ด้วย)


แต่ถ้าเราอยากได้ข้อมูลที่มากกว่านี้ล่ะ ? 
แน่นอนล่ะว่าเราต้อง Login ก่อนเราจะได้ Access Token เพื่อยืนยันการเข้าระบบและขอใช้ข้อมูล 
ถ้าเราอยากได้ข้อมูลที่มากกว่าข้อมูลพื้นฐานด้านบน เราต้องส่ง Permissions Request ไปด้วย
ตอนที่ทำการขอ Authentication (Facebook ใช้ OAuth 2.0) จากนั้น Facebook จะมี Dialog เพื่อขออนุญาติผู้ใช้โปรแกรมให้เอง ว่าจะอนุญาติให้เข้าถึงข้อมูลดังกล่าวหรือไม่ ...
Access Token เป็น String สายยาวๆ ที่เอาไว้ใช้ยืนยันการเข้าใช้ระบบของผู้ใช้งาน และมีเวลาจำกัดในการใช้งาน Access Token นี้ จะได้มาเมื่อเราทำการ Authentication กับ Facebook ซึ่งใน Access Token ประกอบด้วย -- User ID, App ID, Expire time and Secret




และ Facebook ยังรองรับการเข้าถึง ข้อมูลแบบ Query ตัวอย่างเช่นแบบนี้ https://graph.facebook.com/me?fields=id,name,picture หรือแบบนี้ https://graph.facebook.com?ids=baszii,plalittle ซึ่งหลายๆ กรณีคุณไม่ต้องทำการ Request 10 ครั้งเพื่อให้ได้ข้อมูลของคน 10 คนแต่ใช้การทำแบบนี้ทำให้คุณได้ข้อมูลคน 10 คนในครั้งเดียว (อีกตัวที่ผมเคยใช้คือ limits เพื่อบอกว่าเราจะ Feed ข้อมูลมาเป็นจำนวนเท่าไหร่)

ส่วนถ้าใครยังหลงใน SQL Statement อยู่ Facebook ก็ได้ทำ Facebook Query Language (FQL) เป็นของตัวเอง ศึกษาได้ที่นี่ ซึ่งจะเข้าถึงข้อมูลได้เยอะกว่า พวกเรื่องนับๆ นี่หาที่นี่เลย

โดยสามารถศึกษาการใช้ API ต่างๆ และดูข้อมูลของ Object ต่างๆ ได้อย่างละเอียดยิบๆ ที่นี่

Facebook ก็ได้สร้างของเล่น ไว้ให้เราทดลองการใช้งาน Graph API ก่อนที่จะเอาไปใช้จริงด้วย


Popular posts from this blog

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น