4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RailsでTwitterAPI制限を取得する方法

4
Posted at

はじめに

こちらの記事では簡単に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サイトを構築できるか、本番環境にアップロードをするにはどうするかなどの記事を公開していきたいと思います。
プログラミングの勉強をしている方、独学で勉強している方など、少しでも助けになれればと思います^^

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?