LoginSignup
1

More than 1 year has passed since last update.

posted at

[Ruby on Rails]Twitter API利用方法

Twitter APIでできること

APIを使うことで実際に使っているツイッターの情報を利用することができます。
ツイッターの情報とは主に、
・自分のツイッターアカウントを用いてツイートを行う、ツイートにコンテンツの追加
・Twitterの検索機能、トレンドの検索
・アカウントのフォロー、フォローの解除
・アカウントのブロック、ミュート機能
・DM
・ショートメール
・ウェブサイトとアプリの統合
などのTwitterに関する機能をwebアプリで使うことができます。

TwitterのAPI利用申請

 APIを使用するには、Twitterアカウントが必要ですので事前に作成してください。
ツイッターアカウント作成
アカウントをログインした状態でDeeloper用のサイトにアクセスします。

ログインしていれば右上に「Create an app」ボタンが出ると思うのでクリックします。
2d2d33f8daaf047349936637a61babf2.png

そこから、必要項目の入力、英文でAPIの利用目的の記入をして申請をします。
*利用目的について英文で書かれていたけど日本語でも大丈夫みたいです。

大丈夫でしたら、ツイッターからメールが届くと思うのでメールに記載しているurlをアクセスすれば登録が完了します。

APIキー、トークンの取得

TwitterAPIの機能を使うにはAPIキー、トークンが必要になるので用意します。

登録が完了したら、「Create an app」ボタンを押すと、「アプリ名」「アプリの説明」を入力することでアプリの登録ができます。

「Keys and tokens」タブをクリックするとトークンが生成する画面が出ますのでそちらで生成します。

APIを利用して現在のトレンド取得

実際にトレンドを取得してみます。
まずは、gemが必要なので導入します。

gem 'twitter'

忘れないよう「bundle install」は必ず行ってください。

.envファイルなどでキーの設定します。
中身は先程生成したトークンやキーです。

env.rb
TWITTER_API_KEY=""
TWITTER_API_SECRET_KEY=""
TWITTER_ACCESS_TOKEN=""
TWITTER_ACCESS_SECRET_TOKEN=""

実際に取得して表示すると

controller.rb
client = Twitter::REST::Client.new do |config|
      config.consumer_key        = ENV['TWITTER_API_KEY']
      config.consumer_secret     = ENV['TWITTER_API_SECRET_KEY']
      config.access_token        = ENV['TWITTER_ACCESS_TOKEN']
      config.access_token_secret = ENV['TWITTER_ACCESS_SECRET_TOKEN']
    end
    # 日本のトレンド取得
    id = 23_424_856
    @trends = client.trends(id).attrs[:trends]

のような感じで日本のトレンドが取れるかなと思います。
あとは、viewで表示するだけです。
実際に取得して表示してみました。
Image from Gyazo

感想

外部APIを触ってみて、基本英語で読めなかったので翻訳しながらの繰り返しだったけどリファレンスなどをみてたらなにをしたらいいのかだんだんわかってくるようになる。
やれることが多くて意外と楽しい!モチベ上がる!!
今回はトレンド取得のみだったけど自動ツイートとか結構おもしろそうかも。。。

参考

2021年度版 Twitter API利用申請の例文からAPIキーの取得まで詳しく解説

【Rails】Twitter APIを使ってトレンドを取得したい

gem twitter

reference

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
What you can do with signing up
1