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 รายการเพื่อรับข้อมูลกัน