Bạn có muốn học cách viết một ứng dụng Twitter bằng Ruby không? Vậy thì bạn đang ở đúng nơi!
Trong bài đăng này, tôi sẽ hướng dẫn bạn từng bước cách tạo một chương trình có thể tương tác với API Twitter và thực hiện những việc như tìm kiếm các từ khóa nhất định hoặc gửi trả lời tự động.
Hãy bắt đầu!
Thiết lập
Trước hết, bạn cần cài đặt twitter
đá quý. Bước này rất đơn giản:
gem install twitter
Sau đó, bạn sẽ cần truy cập https://apps.twitter.com/ và thiết lập một ứng dụng mới. Để làm điều đó, bạn phải nhấp vào nút "Tạo ứng dụng mới" ở bên phải.
Sau đó điền vào biểu mẫu, bây giờ bạn nhập dữ liệu gì không thực sự quan trọng. Đây là những gì tôi đã làm cho ví dụ này:
Đừng lo lắng về trường trang web, bạn chỉ có thể sử dụng https://example.com làm trình giữ chỗ.
Sau đó, chấp nhận các điều khoản của Twitter bằng cách chọn "Có, tôi đồng ý" và sau đó nhấp vào "Tạo ứng dụng Twitter của bạn".
Nếu mọi thứ suôn sẻ, bạn sẽ thấy màn hình sau:
Bây giờ bạn sẽ cần phải nhấp vào 'Chìa khóa và Mã thông báo truy cập'. Trang này sẽ có các khóa API bạn cần để kết nối với API Twitter, đó là mục đích của quá trình thiết lập này.
Bước tiếp theo là điền thông tin chi tiết của bạn vào mẫu này:
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
Bạn sẽ cần nhấp vào nút "Tạo mã thông báo truy cập" để nhận hai giá trị cuối cùng.
Sau khi hoàn tất quá trình thiết lập này, bạn đã sẵn sàng bắt đầu làm việc với API.
Làm việc với Tweets
Bây giờ bạn có quyền truy cập vào toàn bộ API Twitter thông qua ứng dụng khách client
sự vật. Ví dụ, tôi muốn làm như sau:tải xuống 20 tweet cuối cùng từ @rubyinside
và lưu chúng vào tệp YAML để phân tích sau này.
Để tìm nạp dòng thời gian cho bất kỳ người dùng Twitter nào, bạn có thể sử dụng user_timeline
phương pháp.
Ví dụ :
tweets = client.user_timeline('rubyinside', count: 20)
Phương thức này sẽ trả về một mảng các đối tượng Tweet mà bạn có thể tương tác, nhưng làm thế nào bạn có thể làm điều đó?
Bạn có thể tra cứu tài liệu, nhưng điều tôi thấy thú vị hơn là chỉ cần sử dụng pry
. Nếu bạn chạy mã bên trong pry
bạn sẽ có thể sử dụng ls Twitter::Tweet
yêu cầu. Lệnh này sẽ liệt kê tất cả các phương thức cho một đối tượng hoặc lớp cụ thể.
Trong trường hợp này:
Vì vậy, bây giờ bạn có thể thấy có một full_text
chúng tôi có thể sử dụng, hãy làm điều đó để chúng tôi có thể in nội dung tweet.
tweets.each { |tweet| puts tweet.full_text }
Bạn cũng có thể thử một số phương pháp khác cho vui 🙂
Lưu bài đăng của bạn
Vậy bạn sẽ làm gì với tất cả những dòng tweet này? Ví dụ, bạn có thể ghi chúng vào một tệp để phân tích sau này. Một cách dễ dàng để làm điều này là sử dụng định dạng YAML.
require 'yaml' # ... rest of the code here ... File.write('tweets.yml', YAML.dump(tweets))
Sau đó, bạn có thể tải các tweet này bằng YAML.load_file
phương pháp.
require 'yaml' require 'twitter' tweets = YAML.load_file('tweets.yml')
Các tweet sẽ sẵn sàng để sử dụng ở dạng ban đầu, giống như khi bạn vừa yêu cầu lại. Nó không thú vị phải không? 🙂
Gửi bài đăng
Có rất nhiều điều khác bạn có thể làm. Ví dụ:làm thế nào về việc gửi một tin nhắn cho người dùng đề cập đến một từ khóa cụ thể?
Để gửi một tweet mới, bạn có thể sử dụng update
phương pháp.
client.update("I'm having some fun with the Twitter gem!")
Vì vậy, bạn có thể làm điều gì đó 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
Một tùy chọn khác là sử dụng API phát trực tuyến, API này sẽ cung cấp cho bạn các sự kiện 'trực tiếp' khi chúng diễn ra. Bạn có thể tìm thêm thông tin về điều đó trong tài liệu.
Kết luận
Đá quý Twitter giúp làm việc với API Twitter thực sự dễ dàng sau khi thiết lập ban đầu. Bây giờ đến lượt bạn thử và tạo ra điều gì đó thú vị!
Đừng quên chia sẻ bài viết này để mình có thể tiếp tục viết nhiều bài như thế này nhé 🙂