
เราสามารถทำการดึงข้อมูลจากเฟสบุ๊คได้จาก Graph API แต่ว่าตัว Graph API ของเฟสบุ๊คนั้นถูกออกแบบมาเพื่อให้แอปพลิเคชั่นดึงข้อมูลจากเฟสบุ๊ค ซึ่งเราจะมาดึงตัว Graph API เข้ามาใช้งานในภาษา R กัน
เข้าใจโครงสร้าง Graph API
เราจะติดต่อกับเฟสบุ๊คผ่านข้อมูลรูปแบบของกราฟ โดยจะมีข้อมูลอยู่ 3 แบบได้แก่ จุดยอด (Node) ใช้แทนสิ่งของบนเว็บเฟสบุ๊ค เช่น รูปภาพหรือโพส, เส้นเชื่อม (Edge) ใช้แทนการที่ผู้คนบนเฟสบุ๊คมีปฏิสัมพันธ์กัน เช่นการกดไลค์และการคอมเม้น และข้อมูล (Field) จะอธิบายข้อมูลของแต่ละจุดยอด เช่น ชื่ออะไร ทำงานที่ไหน เป็นต้น ซึ่งต่างจากรูปแบบตารางที่ใช้วิเคราะห์ข้อมูลในภาษา R จึงจำเป็นต้องทำการแปลงข้อมูลให้อยู่ในรูปแบบของตารางก่อนนำไปวิเคราะห์อีกที แต่จะขอละหัวข้อนี้ไว้ เนื่องจากการเข้าถึงจุดยอดที่ต่างกัน ทำให้การแปลงข้อมูลเป็นตารางทำได้ยาก
ท่านสามารถอ่านรายละเอียดเต็มได้ที่ Graph API Overview
การสร้างแอป
เราจะเข้าถึงข้อมูลของเฟสบุ๊ค โดยใช้วิธีเดียวกันกับที่แอปเฟสบุ๊คโดยกดที่ปุ่มที่ลิ้งนี้ Add a New app พร้อมตั้งชื่อแอปให้เรียบร้อย
การรับกุญแจ
การรับ กุญแจ (Access Token) เพื่อเข้าถึงข้อมูล โดยแต่ละผู้ใช้จะได้รับกุญแจที่แตกต่างกัน แม้ว่าจะเป็นแอปเดียวกัน โดยเราสามารถรับกุญแจได้ง่ายๆ โดยเข้าไปที่ Graph Explorer
ที่มุมขวามือจะมีปุ่มเขียนว่า application จะถูกเซ็ตเป็น Graph Explorer อยู่ให้เราทำการเปลี่ยนปุ่มนี้ให้เป็นชื่อแอปที่เราสร้างขึ้น
ต่อไปกดปุ่ม Get User Access Token เพื่อรับกุญแจ
ขั้นนี้แอปจะถามสิทธิในการเข้าถึง เราเลือกข้อมูลที่เราต้องการเข้าถึง ซึ่งเลือกทั้งหมดเลยก็ได้
ในขั้นนี้มันจะขึ้นขอสิทธิ์ต่างๆ พร้อมกับคำเตือนว่ายังไม่สามารถใช้สิทธิ์บางอย่างได้เนื่องจากยังไม่อนุมัติ แต่ไม่ต้องกังวลไปครับ ยังสามารถใช้สิทธิทั้งหมดได้ ถ้าเจ้าของกุญแจนั้นเป็นเจ้าของแอป ดังนั้นกดปุ่ม Okay ได้เลยครับ
คราวนี้ในช่อง access token ด้านบนจะปรากฏกุญแจสำหรับการเข้าถึงข้อมูลขึ้นมาแล้ว ขอให้รักษากุญแจนี้ไว้ให้ดีๆด้วยนะครับ
การดึงข้อมูล
เราสามารถดึงข้อมูลจากเฟสบุ๊คได้โดยการเข้าไปที่
https://graph.facebook.com/จุดยอด/เส้นเชื่อม?fields=ชื่อข้อมูล&access_token=กุญแจ
ตัวอย่างผมจะดึงข้อมูลชื่อของผมผ่านทาง จุดยอด me ชื่อข้อมูล name ผ่านโปรแกรม chrome
https://graph.facebook.com/me/?fields=name&access_token=กุญแจของผม
ข้อมูลที่ปรากฏขึ้นนี้เรียกว่า JSON ซึ่งเราสามารถดึงข้อมูลนี้มาใช้ในภาษา R ได้
การเข้าถึงในภาษา R
มี 2 ไลบรารี่ที่จำเป็นต้องใช้งานนั่นคือ Rcurl และ RJSONIO สั่งติดตั้งโดยใช้คำสั่ง
install.packages("RCurl");
install.packages("RJSONIO");
เรียกทั้ง 2 ไลบรารีเข้ามาใช้งานโดยใช้คำสั่ง
library("RCurl");
library("RJSONIO");
ดึงข้อมูล json เก็บไว้ในตัวแปรชื่อ data โดยใช้คำสั่ง
data<-getURL("https://graph.facebook.com/จุดยอด/เส้นเชื่อม?fields=ชื่อข้อมูล&access_token=กุญแจ")
แปลงข้อมูลจาก JSON ให้อยู่ในรูปของภาษา R โดยใช้คำสั่ง
data<-fromJSON(data)
ผมลองดึงข้อมูลจากจุดยอด me และนี้คือข้อมูลที่ผมดึงออกมาได้
ลองใช้คำสั่ง data["name"]
เพื่อดูชื่อ และ data["languages"]
เพื่อดูภาษาที่ใช้งาน
การต่อยอด
ซึ่งท่านสามารถอ่านรายละเอียดของจุดยอดเส้นเชื่อมและข้อมูลของ Graph API ได้ที่ Graph API reference เพื่อประยุกต์ใช้กับงานของท่านต่อไปครับ