Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

เชี่ยวชาญ Twitter API ด้วย Ruby: คู่มือขั้นตอนต่อขั้นตอน

อยากเรียนรู้เขียน Twitter application ด้วย Ruby? คุณมาถูกที่แล้ว!

ในบทความนี้จะสอนทีละขั้นตอน สร้างโปรแกรมที่ interact กับ Twitter API ได้: ค้นหา keywords, ส่ง auto replies, และอื่นๆ

มาเริ่มกัน!

การ Setup

ก่อนอื่น ติดตั้ง twitter gem ขั้นตอนง่ายมาก:

gem install twitter

จากนั้นไปที่ https://apps.twitter.com/ setup application ใหม่ กดปุ่ม 'Create New App' ขวามือ

เชี่ยวชาญ Twitter API ด้วย Ruby: คู่มือขั้นตอนต่อขั้นตอน

กรอกฟอร์ม ข้อมูลอะไรก็ได้ก่อน นี่คือที่ผมทำ:

เชี่ยวชาญ Twitter API ด้วย Ruby: คู่มือขั้นตอนต่อขั้นตอน

ไม่ต้องกังวล website field ใช้ https://example.com เป็น placeholder ได้

ยอมรับ Twitter terms ติ๊ก 'Yes, I agree' แล้วกด 'Create your Twitter application' ถ้าทุกอย่างถูกต้องจะเห็นหน้าจอ:

เชี่ยวชาญ Twitter API ด้วย Ruby: คู่มือขั้นตอนต่อขั้นตอน

กด 'Keys and Access Tokens' หน้านี้มี API keys สำหรับเชื่อม Twitter API ซึ่งเป็นจุดประสงค์ของ setup นี้

ขั้นตอนต่อไป ใส่รายละเอียดของคุณใน template นี้:

require 'twitter'
client = Twitter::REST::Client.new do |config|
  config.consumer_key = "YOUR_CONSUMER_KEY"
  config.consumer_secret = "YOUR_CONSUMER_SECRET"
  config.access_token = "YOUR_ACCESS_TOKEN"
  config.access_token_secret = "YOUR_ACCESS_SECRET"
end

ต้องกด 'Generate access tokens' เพื่อได้ 2 ค่าสุดท้าย

เสร็จ setup แล้วพร้อมทำงานกับ API!

การทำงานกับ Tweets

ตอนนี้เข้าถึง Twitter API ทั้งหมดผ่าน client object ตัวอย่าง: ดึง 20 tweets ล่าสุดจาก @rubyinside บันทึกลง YAML ไฟล์เพื่อวิเคราะห์ภายหลัง

ใช้ user_timeline method ดึง timeline ของ user ใดๆ:

tweets = client.user_timeline('rubyinside', count: 20)

Return array ของ Tweet objects แล้ว interact ยังไง? อ่าน docs ได้ แต่สนุกกว่าคือใช้ pry รันโค้ดใน pry แล้วใช้ ls Twitter::Tweet จะ list เมธอดทั้งหมดของ object/class นั้น

ในกรณีนี้:

เชี่ยวชาญ Twitter API ด้วย Ruby: คู่มือขั้นตอนต่อขั้นตอน

เห็นว่ามี full_text method ใช้มันพิมพ์ tweet contents:

tweets.each { |tweet| puts tweet.full_text }

ลองเมธอดอื่นๆ เพื่อสนุกได้ 🙂

การบันทึก Tweets

ทำอะไรกับ tweets ทั้งหมดนี้ดี? เขียนลงไฟล์เพื่อวิเคราะห์ภายหลัง วิธีง่ายคือใช้ YAML format:

require 'yaml'
# ... rest of the code here ...
File.write('tweets.yml', YAML.dump(tweets))

โหลดทweets กลับมาได้ด้วย YAML.load_file:

require 'yaml'
require 'twitter'
tweets = YAML.load_file('tweets.yml')

Tweets พร้อมใช้งานในรูปแบบเดิม เหมือนเพิ่ง request ใหม่ ไม่เก๋ไหม? 🙂

การส่ง Tweets

อะไรทำได้อีกเยอะ เช่นส่งข้อความให้ user ที่ mention keyword เฉพาะ ใช้ update method ส่ง tweet ใหม่:

client.update("I'm having some fun with the Twitter gem!")

ทำแบบนี้ได้:

client.search('#ruby').take(3).each do |tweet|
  client.update("@#{tweet.user} Hey I love Ruby too, what are your favorite blogs? :)")
end

อีกทางคือ streaming API ให้ 'live' events real-time ดูรายละเอียดใน documentation

สรุป

Twitter gem ทำให้ใช้ Twitter API ง่ายมากหลัง setup ครั้งแรก ตอนถึงคุณลองสร้างอะไรสนุกๆ ไป!

อย่าลืมแชร์บทความนี้เพื่อให้ผมเขียนต่อได้ 🙂