[RPi] เริ่มต้นกับ Raspberry Pi ตอนที่ 8 : ทำ Facebook Page Like Counter
(ภาพจาก http://www.tinkerelectric.com/uncategorized/physical-facebook-like-indicator-real-time/)
โปรเจคนี้ได้ไอเดียมาจากภาพนี้ครับ คือเราจะมาทำตัวเลขแสดงผล ยอด Likes ในหน้า Page ของ Facebook ที่เราสร้างขึ้นมาหรือที่เราเป็น Admin อยู่นั้นเองครับ…มันดียังไงหรอครับ ก็ดีตรงที่เราสามารถติดตามยอด Likes ได้แบบทันทีทันไดเลยไงหละครับ…ไว้สำหรับทำการตลาดแบบ Social ก็ได้นะครับ สนุกไปอีกแบบ …. ว่าแล้วก็ลองมาทำกันเลยครับ
อุปกรณ์ที่ใช้
- Raspberry Pi 2 Model B
- Micro SD card 8GB Class 10 + Raspbian OS
- F/F jumper wire
- 8 Digit 7-segment Display แบบ SPI
- Micro USB Cable + USB Power Adapter (1A)
- HDMI Cable
- Monitor with HDMI port
- USB Mouse + USB Keyboard
การต่อสาย
ตัวหน้าจอ 8 Digit 7-segment Display SPI ที่เราใช้ จะถูกขับด้วยชิป MAX7219
(ภาพและข้อมูลจาก https://github.com/rm-hull/max7219)
การเตรียมข้อมูลบน Facebook
เนื่อง Facebook นั้นมีการปรับ API ใหม่ การที่เราจะได้ข้อมูลของ Page มาได้นั้น จำเป็นจะต้องมี Access Token และ Page ID ซึ่งถ้าเป็นเพจที่เราเป็นเจ้าของหรือ Admin นั้น เราก็สามารถทำได้ไม่ยากครับ เพียงแค่ออกแรงอีกนิดหน่อย โดยขั้นตอนต่อไปนี้ครับ
Step 1 : Access Token
- เอา Access Token จาก https://developers.facebook.com/tools/explorer
- คลิ๊กที่ปุ่ม Get Token ด้านขวามือ จะมี Drop Down ลงมาให้เลือกครับ
- เลือกไปที่ GetPage Token ครับ
Step 2 : Permission ต่างๆ
Step 3 : เลือกข้อมูล Page
- เลือก Page ที่เราต้องการดึงข้อมูล…ในที่นี้คือ Sathittham ครับ
Step 4 : ข้อมูลที่ต้องการ
- ที่ช่อง Access Token ระบบจะสร้างรหัสมาให้เราแล้ว เราสามารถก๊อปปี้ได้เลยครับ
- ในช่อง GET ให้เราเพิ่ม field likes ลงไปโดยการพิมพ์ “,likes” ต่อท้าย เพื่อให้แสดงยอด Likes ในเฟสบุ๊คเพจ
- กด Submit ระบบจะสร้างโค๊ดที่เป็น json มาให้เรา ตาม field ที่เราใส่ไว้ในช่อง GET ครับ
- ***หมายเหตุ***
- Token ที่เราได้จากตรงนี้ จะเป็น Token ชั่วคราว ประมาณ 1–2 ชม. จากนั้นจะหมดอายุนะครับ
- หากต้องการแบบถาวร ต้องสร้างเป็น FB App แล้วใช้ App Token แทนครับ
- ดู App Token ได้จาก https://developers.facebook.com/tools/access_token
การตั้งค่า SPI บน Raspberry Pi
- sudo raspi-config
- เลือก Advance options > SPI > YES > OK > YES > OK
- sudo apt-get install python-dev python-pip
- sudo pip install spidev
การติดตั้ง Lib สำหรับ 7-Segment
- sudo apt-get install git
- git clone https://github.com/rm-hull/max7219.git
- cd max7219
- sudo python setup.py install
การทดสอบการใช้งน 7-Segment เบื้องต้น
- Raspberry Pi
- Menu > Programming > Python 3
- Python Shell > File > New Window
- Save as … test_7seg.py
- พิมพ์โค๊ด
test_7seg.py
- เข้า Terminal แล้วพิมพ์คำสั่ง
- sudo python test_7seg.py
ผลลัพธ์ที่ได้
การเขียนโปรแกรม
- git clone https://github.com/sathittham/RaspberryPi.git
- cd /home/pi/RaspberryPi/
- sudo nano fb_likes_count.py
- โดยให้แก้ไขดังต่อไปนี้
- page_id
- token
โค๊ดทั้งหมดจะเป็นแบบนี้ครับ
ทดสอบ
- เข้า Terminal แล้วพิมพ์คำสั่ง
- sudo python fb_likes_count.py
ผลลัพธ์ที่ได้
อ้างอิงจาก
- https://developers.facebook.com/tools/explorer
- https://developers.facebook.com/tools/access_token
- http://www.idiotinside.com/2015/02/13/get-number-of-likes-of-a-facebook-page-using-graph-api-in-python/
- https://github.com/rm-hull/max7219
- http://www.sitepoint.com/2-cool-things-can-facebook-graph-api/
- http://www.oneminuteinfo.com/2015/06/graph-api-error-access-token-required.html