5 ธันวาคม 2557

Published ธันวาคม 05, 2557 by with 1 comment

ใช้ทวิตเตอร์ Twitter ใน Python

บทความนี้ผมจะพาผู้อ่านทุกท่านไปเขียนโปรแกรม Python เพื่อใช้งานกับทวิตเตอร์ (Twitter) กันครับ
  ในการใช้งานทวิตเตอร์ (Twitter) จะต้องทำผ่านสิ่งที่เรียกว่า API ทาง Twitter ได้เปิด API สำหรับนักพัฒนาภายนอก เป็นสิ่งที่ทำให้ Twitter ได้รับความนิยมในหมู่นักพัฒนาด้วยการเปิดกว้างข้อมูล
  ใน Python มีนักพัฒนาได้พัฒนาโมดูลสำหรับใช้งาน Twitter ใน Python เรียกว่า "TwitterAPI" ใช้ License: MIT  รองรับทั้ง Python 2 , Python 3 ครับ
ในการติดตั้งทำได้ง่าย ๆ ด้วยการสั่ง pip โดยใช้คำสั่ง
pip install TwitterAPI
ต่อไปผู้อ่านต้องไปเตรียมสิ่งจำเป็นต่อไปนี้ครับ
  • token_key และ token_secret เป็นข้อมูลที่ใช้ในการเข้าถึงบัญชี Twitter ของเรา
  • consumer_key และ  consumer_secret เราต้องสร้างแอพขึ้นมาบน Twitter เพื่อใช้ในการติดต่อกับ Twitter ให้ผู้อ่านไปสร้างแอพได้ที่ https://apps.twitter.com/app/new จะพบกับ
    สร้าง application ใหม่
    Name: *
    เช่น tontanontwitter
    Description: *
    เช่น ล็อกอินด้วย twitter
    Website: *
    เช่น http://wannaphong.com
    Callback URL
    ไม่ต้องใส่ก็ได้ครับ
    จากนั้นจะพบกับหน้านี้ ให้คลิกที่แท็บ Permissions แล้วติกที่ Read and Write
    เป็นการกำหนดให้แอพนี้สามารถเขียนและอ่านข้อมูลจาก Twitter ได้ครับ แล้วกด Update Settings จากนั้นคลิกที่แท็บ Keys and Access Tokens เราก็จะได้ข้อมูล consumer_key และ  consumer_secret ครับ
    ต่อไปเราจะเอาข้อมูล token_key และ token_secret กันครับ เลื่อนหน้าแท็บ Keys and Access Tokens ลงมาข้างล่างจะพบกับ Your Access Token จะมีปุ่ม Create my access token ให้ผู้อ่านคลิกปุ่มนั้นครับ
    แค่นี้เราก็ได้ข้อมูล token_key และ token_secret แล้วครับ
เมื่อได้ข้อมูลที่จำเป็นแล้วต่อไปเรามาลองเขียนโปรแกรมกันเลยครับ เริ่มแรกให้ต้องการ import TwitterAPI เข้ามาแล้วกรอกข้อมูลที่เราได้มาลงไปครับ
from TwitterAPI import TwitterAPI
consumer_key = ""
consumer_secret = ""
access_token_key = ""
access_token_secret = ""
api = TwitterAPI(consumer_key, consumer_secret, access_token_key, access_token_secret)

ทวิตข้อความใช้คำสั่ง
r = api.request('statuses/update', {'status':'This is a tweet! By Python :P'})

จะพบว่าข้อความได้ถูกเผยแพร่ไปยัง Twitter แล้ว
เช็คสถานะของ status ที่ทวิตไป
print(r.status_code)

หากเป็น 200 แสดงว่า  ข้อความได้ถูกทวิตไปแล้วครับ :D
ถ้าต้องการค้นข้อมูลจาก Twitter ใช้คำสั่ง เช่น
r = api.request('search/tweets', {'q':'#เรารักในหลวง'})
for item in r:
        print(item)

จะพบกับข้อมูลมหาศาล ผมต้องการแค่ข้อความ ผมจึงเขียนโค้ดเป็น
r = api.request('search/tweets', {'q':'#เรารักในหลวง'})
for item in r:
    print(item['text'] if 'text' in item else item)

ผลลัพธ์
หากเราต้องการค้นข้อมูลจากสถานที่ เช่น เมือง New York ใช้คำสั่ง
r = api.request('statuses/filter', {'locations':'-74,40,-73,41'}) #พิกัด
for item in r:
        print(item)

ดูตัวอย่างการใช้งานเพิ่มเติมได้ที่ https://github.com/geduldig/TwitterAPI/tree/master/examples ครับ
หน้าเว็บโมดูล TwitterAPI https://github.com/geduldig/TwitterAPI
เอกสารการใช้งานโมดูล TwitterAPI http://geduldig.github.io/TwitterAPI/
ลองนำไปประยุกต์ใช้งานกันดูนะครับ
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

1 ความคิดเห็น:

  1. ถ้าผมต้องการข้อมูลที่เยอะมากๆ จะมีวิธีไหนที่จะเพิ่มจำนวนข้อมูลที่ได้มาให้เยอะกว่านี้ไหมครับ

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)