Bạn muốn học viết ứng dụng Twitter dùng Ruby? Bạn đang ở đúng chỗ!
Bài này sẽ dạy bạn từng bước tạo chương trình tương tác với Twitter API, làm những việc như tìm từ khóa hoặc gửi phản hồi tự động.
Bắt đầu ngay!
Thiết Lập
Trước hết, cần cài gem twitter. Bước này rất đơn giản:
gem install twitter
Sau đó truy cập https://apps.twitter.com/ thiết lập ứng dụng mới. Bấm nút 'Create New App' bên phải.

Điền biểu mẫu, dữ liệu nhập vào không quan trọng lắm. Đây là ví dụ của mình:

Đừng lo trường website, chỉ cần dùng https://example.com làm placeholder.
Chấp nhận điều khoản Twitter bằng cách tick 'Yes, I agree' rồi bấm 'Create your Twitter application'.
Nếu thành công sẽ thấy màn hình sau:

Bây giờ bấm 'Keys and Access Tokens'. Trang này có API key cần kết nối Twitter API, mục đích của quá trình thiết lập.
Bước tiếp theo điền mẫu này với thông tin của bạn:
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
Cần bấm 'Generate access tokens' để lấy hai giá trị cuối.
Hoàn tất thiết lập, bạn sẵn sàng làm việc với API.
Làm Việc Với Tweet
Bây giờ có quyền truy cập toàn bộ Twitter API qua đối tượng client. Ví dụ: tải 20 tweet cuối từ tài khoản @rubyinside lưu vào tệp YAML để phân tích sau.
Để lấy timeline của user Twitter bất kỳ, dùng phương thức user_timeline.
Ví dụ:
tweets = client.user_timeline('rubyinside', count: 20)
Phương thức trả về mảng đối tượng Tweet để tương tác, nhưng làm thế nào?
Có thể tra tài liệu, nhưng cách thú vị hơn là dùng pry. Chạy code trong pry cho phép dùng lệnh ls Twitter::Tweet. Lệnh này liệt kê tất cả phương thức cho đối tượng/lớp cụ thể.
Trong trường hợp này:

Bây giờ thấy phương thức full_text, dùng nó in nội dung tweet.
tweets.each { |tweet| puts tweet.full_text }
Cũng thử các phương thức khác cho vui 🙂
Lưu Tweet
Làm gì với các tweet này? Ví dụ ghi vào tệp để phân tích sau. Cách dễ dàng là dùng định dạng YAML.
require 'yaml'
# ... phần code còn lại ...
File.write('tweets.yml', YAML.dump(tweets))
Sau đó nạp tweet bằng YAML.load_file.
require 'yaml'
require 'twitter'
tweets = YAML.load_file('tweets.yml')
Tweet sẵn sàng dùng dưới dạng gốc, như vừa yêu cầu lại. Cool phải không? 🙂
Gửi Tweet
Nhiều việc khác có thể làm. Ví dụ gửi tin nhắn cho user nhắc từ khóa cụ thể?
Để gửi tweet mới dùng phương thức update.
client.update("I'm having some fun with the Twitter gem!")
Có thể làm như sau:
client.search('#ruby').take(3).each do |tweet|
client.update("@#{tweet.user} Hey I love Ruby too, what are your favorite blogs? :)")
end
Tùy chọn khác là Streaming API, cho sự kiện 'live' khi xảy ra. Xem thêm trong tài liệu.
Kết Luận
Gem Twitter làm việc với Twitter API thật dễ dàng sau thiết lập ban đầu. Bây giờ đến lượt bạn thử và tạo thứ gì đó vui!
Đừng quên chia sẻ bài viết để mình tiếp tục viết thêm bài như thế này 🙂