はじめに
こちらの記事では簡単にRubyOnRailsでTwitterのAPI制限値を取得していきたいと思います。初めてAPIを使ってみたい方にとってTwitterのAPIは使用しやすいものかな、と思っています。
しかし去年のちょうど今頃、TwitterAPIを使用するためにDeveloperアカウントを申請しなくてはならなくなりましたので、使えるようになるまでの敷居が高くなってしまいました・・・
つい最近個人でDeveloperアカウントを申請したのですが、比較的短い文章?で承認されましたので、いつか公開できればなと思っています^^
こちらの記事は『Railsの環境構築』『Developerアカウントの取得』を前提としておりますのでご了承ください。
Gemfile
まずはGemfileに下記を記述します。
そして bundle install コマンドを打ってください。
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.4.2'
.
..
...
....(省略します)
gem 'twitter'
Keyを記述し、API制限を取得する
ご自身で作成してあるいずれかのControllerに下記を記述してください。
TwitterDeveloper画面の Apps > 自分のApp名 > Keys and tokens から取得&生成することができます^^
ここで取得しているAPIの種類は /search/tweets というもので、ツイートを検索する時に使用するものになります。他に指定できるAPIの種類はたくさんございますので、TwitterAPIのドキュメントを見てみてください。
https://developer.twitter.com/en/docs.html
class TopController < ApplicationController
def index
# Twitterのクライアントを作成する。
client = Twitter::REST::Client.new do |config|
config.consumer_key = "**********"
config.consumer_secret = "**********"
config.access_token = "**********"
config.access_token_secret = "**********"
end
# API制限を取得する
rate_limit_status = client.__send__(:perform_get, '/1.1/application/rate_limit_status.json')
p rate_limit_status[:resources][:search][:"/search/tweets"]
end
end
ログ
ログをみてみてください!
すると、制限が取得できているはずです^^
# ログ
{:limit=>180, :remaining=>180, :reset=>1566629720}
パラメータの詳細は、
limit → 最大リクエスト数 remaining → リクエスト残数 reset → リセット時間
です。
あと何回リクエストができるかは remaining を見れば良さそうですね。
またリセット時間はUNIX時間となっておりますので、日本時間に変換するためには
Time.at(rate_limit_status[:resources][:search][:"/search/tweets"][:reset])
で変換することができます!
終わりに
以上がTwitterのAPI制限を取得する方法になります。
私のQiitaでは、RubyOnRailsを中心に、どうすればRalisでWebサイトを構築できるか、本番環境にアップロードをするにはどうするかなどの記事を公開していきたいと思います。
プログラミングの勉強をしている方、独学で勉強している方など、少しでも助けになれればと思います^^