Python3 X Facebook Graph API
ในปัจจุบันมีการใช้งาน Facebook กันเป็นจำนวนมาก ไม่ว่าจะโพส, เปิดเพจและสร้างกลุ่มต่าง ดังนั้นมันจึงเป็น data จำนวนมหาศาลที่เราสามารถนำต่อยอดต่างๆได้ วันนี้เจ้าของโพสเลยมาแชร์การดึงข้อมูลจาก Facebook ด้วย Facebook Graph API และ Facebook SDK จะมีขั้นตอนยังไงนั้น ตามไปดูกันเล้ยยยยยย
สำหรับคนมีเวลาอ่านน้อย
- 🍡 Facebook Graph API เป็นแอปที่ต้องสร้างเพื่อเอาไว้ดึงข้อมูล
- 🍣 Library Facebook SDK ของ python เอาไว้ดึง Facebook Graph API ออกมา
กด 🔖 (Bookmark) ไว้อ่านทีหลังกันได้ถ้าไม่มีเวลา
ใครอยากเข้าใจมากขึ้นเริ่มอ่านบทความนี้ได้เลย 👇🏻
เครื่องมือที่ใช้:
- 🍕 Editor
- 🥩 python3
- 🍜 Facebook SDK ใช้ pip ในการ install
pip install facebook-sdk
ก่อนอื่นเลย ไปสร้างแอป ที่ facebook graph api เพื่อที่จะได้ token สำหรับนำไปใช้ต่อในการเขียน python
ใส่ชื่อแอป และ E-mail ของเราให้เรียบร้อย
ไปที่ เครื่องมือ แล้ว เลือก Graph API Explorer
คลิ๊กที่ Generate Access Token
จากนั้น กด ดำเนินการต่อ เพื่ออนุญาต appให้เข้าถึงข้อมูลได้
ตอนนี้เราก็ได้ Token แล้ว แต่เริ่มต้นสิทธิ์การเข้าถึงข้อมูล ได้เพียง public_profile ถ้าอยากได้เข้าถึงข้อมูลอื่นๆ ให้เลือกเพิ่มที่ เพิ่มสิทธิ์การอนุญาต เมื่อเพิ่มเรียบร้อยแล้ว ให้ Generate Access Token ใหม่
ลองใช้ graph api explorer โดย กดที่ ส่ง
จะได้ผลลัพธ์ ตาม field ที่ใส่ตามข้างต้น id, name
ลองใส่ age_range, birthday, gender, friends
ถึงเวลาอันสมควรแล้ว ไปเขียนโค้ดกันเถอะ
เมื่อ run จะได้ผลลัพธ์แบบนี้
ลอง field อื่นๆ ใน Graph API Explorer
ดูผลลัพธ์กันหน่อย
จะเห็นได้ว่า หากเราอยากได้ตัวไหนก็ใช้ keyword ตามที่เห็นใน Graph API Explorer
จำเป็นมั้ยที่ node จะต้องเป็น me
ลองใส่อย่างอื่นกันดีกว่า ใส่เลข id ของเราดีกว่า
อธิบาย node สามารถใส่เลขได้ ไม่จำเป็นที่จะต้องid ของเรา id ของgroup ที่เราอยู่ หรือpage ก็ได้ ปล.กลุ่ม หรือ pageนั้น ต้อง install app ของเราเรียบร้อยแล้วนะ
นอกจากนี้ graph api explorer ยังมีอะไรให้เล่นอีกกันนะ
- api ไม่ได้มีเพียง get แต่ยังมี post, delete อีกด้วย
2.สิทธิ์การเข้าถึงข้อมูล มีให้เลือกค่อนข้างครอบคลุม ไม่ว่าจะเป็น user, group, page, Instagram, etc.
ดูโค้ดเต็มๆได้ ที่นี่ ▼
ก่อนจากกัน ฝากบทความอื่นๆ ด้วยนะคะ ▼
อย่าลืม 👏 (Claps) และ 🔖 (Bookmark) บทความนี้ไว้อ่านทีหลังด้วยนะ