API กราฟเป็นวิธีหลักในการนำข้อมูลเข้าและออกจากแพลตฟอร์ม Facebook โดยเป็น API ที่อยู่บน HTTP ซึ่งแอพสามารถใช้เพื่อสืบค้นข้อมูล โพสต์เรื่องราวใหม่ๆ จัดการโฆษณา อัพโหลดรูปภาพ และทำงานอื่นๆ ได้อีกมากมายหลากหลายด้วยโปรแกรม
API กราฟตั้งชื่อมาจากแนวคิด "กราฟสังคม" ซึ่งแสดงถึงข้อมูลบน Facebook และประกอบด้วยโหนด จุดเชื่อมโยง และช่องต่างๆ โดยปกติแล้ว คุณจะใช้โหนดเพื่อรับข้อมูลเกี่ยวกับอ็อบเจ็กต์เฉพาะรายการ ใช้จุดเชื่อมโยงเพื่อรับคอลเลกชั่นของอ็อบเจ็กต์ในอ็อบเจ็กต์เดี่ยว และใช้ช่องต่างๆ เพื่อรับข้อมูลเกี่ยวกับอ็อบเจ็กต์เดี่ยวหรืออ็อบเจ็กต์แต่ละตัวในคอลเลกชั่น ในเอกสารของเรา เราอาจกล่าวถึงโหนดและจุดเชื่อมโยงว่าเป็น "ตำแหน่งข้อมูล" ตัวอย่างเช่น "ส่งคำขอ GET
ไปยังตำแหน่งข้อมูลผู้ใช้"
การถ่ายโอนข้อมูลทุกครั้งจะสอดคล้องกับ HTTP/1.1 และตำแหน่งข้อมูลทั้งหมดจะต้องใช้ HTTPS และเนื่องจาก API กราฟทำงานอยู่บน HTTP ดังนั้นจึงทำงานได้กับทุกภาษาที่มีไลบรารี HTTP เช่น cURL และ urllib ซึ่งหมายความว่าคุณสามารถใช้ API กราฟได้โดยตรงในเบราว์เซอร์ ตัวอย่างเช่น การส่งคำขอ URL นี้ในเบราว์เซอร์ของคุณ...
https://graph.facebook.com/facebook/picture?redirect=false
... เทียบเท่ากับการส่งคำขอ cURL นี้:
curl -i -X GET "https://graph.facebook.com/facebook/picture?redirect=false"
นอกจากนี้ เรายังได้เปิดใช้งานคำสั่ง HSTS includeSubdomains
บน facebook.com
แต่จะไม่ส่งผลกระทบต่อการเรียกใช้ API กราฟของคุณ
คำขอเกือบทั้งหมดจะถูกส่งผ่านไปยัง URL โฮสต์ graph.facebook.com
ยกเว้นเฉพาะวิดีโอที่อัพโหลดซึ่งจะใช้ graph-video.facebook.com
แทน
โทเค็นการเข้าถึงทำให้แอพของคุณสามารถเข้าถึง API กราฟได้ ตำแหน่งข้อมูล API กราฟเกือบทุกตำแหน่งต้องใช้โทเค็นการเข้าถึงบางประเภท ดังนั้น ในแต่ละครั้งที่คุณเข้าถึงตำแหน่งข้อมูล คำขอของคุณอาจต้องใช้โทเค็นการเข้าถึง 1 รายการ โดยปกติแล้ว โทเค็นการเข้าถึงจะมี 2 ฟังก์ชั่น:
ไปที่เอกสารประกอบโทเค็นการเข้าถึงเพื่อเรียนรู้เพิ่มเติม
โหนดคืออ็อบเจ็กต์แยกที่มี ID เฉพาะสำหรับแต่ละตัว ตัวอย่างเช่น มีอ็อบเจ็กต์โหนดผู้ใช้จำนวนมาก ซึ่งอ็อบเจ็กต์แต่ละตัวจะมี ID เฉพาะที่แสดงแทนแต่ละคนบน Facebook โดยเพจ กลุ่ม โพสต์ รูปภาพ และความคิดเห็นเป็นเพียงโหนดบางประเภทของกราฟสังคมของ Facebook เท่านั้น
ตัวอย่าง cURL ต่อไปนี้แสดงการเรียกโหนดผู้ใช้
curl -i -X GET \ "https://graph.facebook.com/USER-ID?access_token=ACCESS-TOKEN"
คำขอนี้จะส่งคืนข้อมูลต่อไปนี้ตามค่าเริ่มต้น ซึ่งจัดรูปแบบโดยใช้ JSON:
{ "name": "Your Name", "id": "YOUR-USER-ID" }
คุณสามารถขอรับรายการช่องทั้งหมด ซึ่งประกอบด้วยชื่อช่อง คำอธิบาย และประเภทข้อมูล ของอ็อบเจ็กต์โหนดได้ เช่น ผู้ใช้ เพจ หรือรูปภาพ ส่งคำขอ GET
ไปยัง ID อ็อบเจ็กต์และใส่พารามิเตอร์ metadata=1
:
curl -i -X GET \ "https://graph.facebook.com/USER-ID? metadata=1&access_token=ACCESS-TOKEN"
การตอบกลับ JSON ที่ส่งคืนจะมีคุณสมบัติ metadata
ซึ่งแสดงรายการช่องที่รองรับทั้งหมดสำหรับโหนดที่ระบุ:
{ "name": "Jane Smith", "metadata": { "fields": [ { "name": "id", "description": "The app user's App-Scoped User ID. This ID is unique to the app and cannot be used by other apps.", "type": "numeric string" }, { "name": "age_range", "description": "The age segment for this person expressed as a minimum and maximum age. For example, more than 18, less than 21.", "type": "agerange" }, { "name": "birthday", "description": "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`. However, people can control who can see the year they were born separately from the month and day so this string can be only the year (YYYY) or the month + day (MM/DD)", "type": "string" }, ...
โหนด /me
เป็นตำแหน่งข้อมูลพิเศษที่แปลงเป็น ID อ็อบเจ็กต์ของบุคคลหรือเพจที่เป็นเจ้าของโทเค็นการเข้าถึงที่กำลังเรียกใช้ API หากคุณมีโทเค็นการเข้าถึงของผู้ใช้ คุณสามารถดึงชื่อและ ID ของผู้ใช้ได้โดยใช้:
curl -i -X GET \ "https://graph.facebook.com/me?access_token=ACCESS-TOKEN"
จุดเชื่อมโยงเป็นการเชื่อมต่อระหว่างโหนด 2 รายการ ตัวอย่างเช่น โหนดผู้ใช้อาจมีรูปภาพที่เชื่อมต่อกัน และโหนดรูปภาพอาจมีความคิดเห็นที่เชื่อมต่อกัน ตัวอย่าง cURL ต่อไปนี้จะส่งคืนรายการรูปภาพที่มีคนเผยแพร่บน Facebook
curl -i -X GET \ "https://graph.facebook.com/USER-ID/photos?access_token=ACCESS-TOKEN"
แต่ละ ID ที่ส่งคืนจะแสดงโหนดรูปภาพและเวลาที่อัพโหลดลงบน Facebook
{ "data": [ { "created_time": "2017-06-06T18:04:10+0000", "id": "1353272134728652" }, { "created_time": "2017-06-06T18:01:13+0000", "id": "1353269908062208" } ], }
ช่องเป็นคุณสมบัติของโหนด เมื่อคุณสืบค้นโหนดหรือจุดเชื่อมโยง ระบบจะส่งคืนชุดของช่องตามค่าเริ่มต้นอย่างที่เห็นในตัวอย่างข้างต้น แต่คุณสามารถระบุได้ว่าต้องการให้ระบบส่งคืนช่องใดโดยใช้พารามิเตอร์ fields
และระบุแต่ละช่อง การดำเนินการนี้จะไปแทนที่ค่าเริ่มต้นและจะส่งคืนเฉพาะช่องที่คุณระบุ รวมถึง ID ของอ็อบเจ็กต์ที่ส่งคืนทุกครั้ง
คำขอ cURL ต่อไปนี้มีพารามิเตอร์ fields
และชื่อ อีเมล และรูปโปรไฟล์ของผู้ใช้
curl -i -X GET \ "https://graph.facebook.com/USER-ID?fields=id,name,email,picture&access_token=ACCESS-TOKEN"
{ "id": "USER-ID", "name": "EXAMPLE NAME", "email": "EXAMPLE@EMAIL.COM", "picture": { "data": { "height": 50, "is_silhouette": false, "url": "URL-FOR-USER-PROFILE-PICTURE", "width": 50 } } }
พารามิเตอร์เกือบทุกประเภทจะเป็นแบบพื้นฐานที่เข้าใจง่าย เช่น bool
, string
และ int
แต่ยังมีประเภท list
และ object
ที่อาจระบุอยู่ในคำขอได้
ประเภท list
จะได้รับการระบุในรูปแบบคำสั่ง JSON ตัวอย่างเช่น: ["firstitem", "seconditem", "thirditem"]
ประเภท object
จะได้รับการระบุในรูปแบบคำสั่ง JSON เช่นกัน ตัวอย่างเช่น: {"firstkey": "firstvalue", "secondKey": 123}
ไปที่คู่มือการแชร์ของ Facebook เพื่อเรียนรู้วิธีเผยแพร่ไปยัง Facebook ของผู้ใช้หรือไปที่เอกสารประกอบ API เพจเพื่อเผยแพร่ไปยังฟีด Facebook ของเพจ
โหนดบางรายการช่วยให้คุณสามารถอัพเดตช่องด้วยการดำเนินการ POST
ได้ ตัวอย่างเช่น คุณสามารถอัพเดตช่อง email
ในลักษณะเช่นนี้ได้:
curl -i -X POST \ "https://graph.facebook.com/USER-ID?email=YOURNEW@EMAILADDRESS.COM&access_token=ACCESS-TOKEN"
สำหรับการสร้างและอัพเดตตำแหน่งข้อมูล API กราฟสามารถอ่านอ็อบเจ็กต์ที่เผยแพร่หรืออัพเดตเรียบร้อยแล้วได้ในทันที และส่งกลับช่องใดๆ ที่รองรับตำแหน่งข้อมูลการอ่านที่สอดคล้องกัน
ระบบจะส่งคืน ID ของอ็อบเจ็กต์ที่สร้างหรืออัพเดตแล้วตามค่าเริ่มต้น หากต้องการเพิ่มข้อมูลในการตอบกลับ ให้ใส่พารามิเตอร์ fields
ในคำขอและระบุช่องที่ต้องการให้ส่งคืน ตัวอย่างเช่น หากต้องการเผยแพร่ข้อความว่า “Hello” ไปยังฟีดของเพจ คุณสามารถสร้างคำขอได้ดังนี้:
curl -i - X POST "https://graph.facebook.com/PAGE-ID/feed?message=Hello& fields=created_time,from,id,message&access_token=ACCESS-TOKEN"
การดำเนินการนี้จะส่งกลับช่องที่กำหนดมาในรูปแบบ JSON ดังเช่น:
{ "created_time": "2017-04-06T22:04:21+0000", "from": { "name": "My Facebook Page", "id": "PAGE-ID" }, "id": "POST_ID", "message": "Hello", }
โปรดดูเอกสารข้อมูลอ้างอิงของแต่ละตำแหน่งข้อมูลเพื่อดูว่าตำแหน่งข้อมูลรองรับอ่าน-หลังจาก-เขียนหรือไม่ และสามารถใช้ช่องใดได้บ้าง
หากการอ่านดำเนินการไม่สำเร็จไม่ว่าจะด้วยเหตุผลใด (ตัวอย่างเช่น มีการขอช่องที่ไม่มีอยู่) API กราฟจะตอบกลับด้วยข้อผิดพลาดมาตรฐาน ไปที่คู่มือการจัดการข้อผิดพลาดของเราเพื่อดูข้อมูลเพิ่มเติม
คุณสามารถลบโหนด เช่น โหนดโพสต์หรือโหนดรูปภาพ ได้ตามปกติโดยดำเนินการ DELETE ใน ID อ็อบเจ็กต์
curl -i -X DELETE \ "https://graph.facebook.com/PHOTO-ID?access_token=ACCESSS-TOKEN"
โดยปกติแล้ว คุณสามารถลบได้เฉพาะโหนดที่คุณสร้างเท่านั้น แต่โปรดตรวจสอบคู่มืออ้างอิงของโหนดแต่ละรายการเพื่อดูข้อกำหนดสำหรับการดำเนินการลบ
คุณสามารถรับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงโหนดหรือการโต้ตอบกับโหนดได้โดยการสมัครรับข้อมูล Webhooks โปรดดูที่ Webhooks
API กราฟมีด้วยกันหลายเวอร์ชั่น ซึ่งจะเปิดตัวในทุกๆ ไตรมาส คุณสามารถระบุเวอร์ชั่นที่ต้องการในการเรียกได้โดยเพิ่ม "v" พร้อมใส่หมายเลขเวอร์ชั่นไว้ที่จุดเริ่มต้นของเส้นทางคำขอ ตัวอย่างเช่น การเรียกใช้เวอร์ชั่น 4.0 จะมีลักษณะดังนี้:
curl -i -X GET \ "https://graph.facebook.com/v4.0/USER-ID/photos ?access_token=ACCESS-TOKEN"
หากคุณไม่ได้ระบุหมายเลขเวอร์ชั่น เราจะเลือกใช้เวอร์ชั่นเก่าที่สุดที่พร้อมใช้งานเป็นค่าเริ่มต้นให้กับคุณ เราจึงขอแนะนำให้คุณระบุหมายเลขเวอร์ชั่นในคำขอ
คุณสามารถอ่านข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชั่นต่างๆ ได้ในคู่มือการกำหนดเวอร์ชั่นของเราและเรียนรู้เพิ่มเติมเกี่ยวกับเวอร์ชั่นที่ใช้ได้ทั้งหมดในบันทึกการเปลี่ยนแปลงของ API กราฟ
เชื่อมต่ออินเทอร์เฟซและพัฒนาบนแพลตฟอร์มต่างๆ โดยใช้ API, SDK และแพลตฟอร์มต่างๆ ของ Facebook ที่มีให้เลือกใช้อย่างหลากหลาย
เริ่มต้นใช้งาน API กราฟ มาสำรวจกราฟสังคมของ Facebook โดยใช้เครื่องมือ Graph Explorer และส่งคำขอสัก 2-3 รายการเพื่อรับข้อมูลกัน