LoginSignup
2
2

More than 1 year has passed since last update.

Twitter gemの使い方

Posted at

はじめに

twitter apiをRailsを使って実装する際に、twitter gem を使用しようと思い、twitter gemについて調べたことをまとめました。

使用前の注意点

・twitter gem はruby 2.7までしか使えない。
・twitter gem を使う前にTwitter Devへ申請し、アプリを作成し各種KeyやTokenを取得する必要がある
(参考:Twitter APIを利用するには)
・OAuth認証が完了していないと使えないメソッドやリクエストがある。
(OAuth認証についてはまだ未解決)
・環境変数を使うので、gem dotenv-railsはインストールしている前提である。

Twitter gemの使い方

1. インストール

まず、Gemfile

Gemfile
gem `twitter`

を追加し、ターミナルで

gem install twitter

を実行し、インストールをします。

2. gemを使う前の環境構築

冒頭の注意書きにも書いたように、Twitter APIに必要な各種keyとTokenがないと

Bad Authentication data

というエラーが出てしまいます。そこで、各種KeyとTokenを利用できるように
application_controllerに定義して、それぞれのcontrollerにbefore_acttionで認証していきましょう。
早速、application_controller.rb以下を記入。

application_controller
  @client = Twitter::REST::Client.new do |config|
      config.consumer_key        = ENV['CONSUMER_KEY']
      config.consumer_secret     = ENV['CONSUMER_SECRET']
      config.access_token        = ENV['ACCESS_TOKEN']
      config.access_token_secret = ENV['ACCESS_TOKEN_SECRET']
    end

各KeyやTokenはTwitter Devを申請し、アプリを作成した時に取得したものを.envに入力。
(.envファイルがない場合はターミナルでtouch .envを実行し、ファイルを生成しましょう。)
これが出来れば、準備完了です!

3. twitter gem で使えるメソッドを確認しよう。

次にrails consoleでtwitter gemのメソッド一覧を確認していきましょう。
bundle exec rails cを実行後
console内で

console
client = Twitter::REST::Client.new

を実行し、clientを定義します。
(別にclientでなくてもなんでも大丈夫です。とりあえず、Twitterモジュールに関連した変数を定義できればOK)
次に

console
client.methods

を実行するとズラーっと使用できるmethodsが出てきます。
このメソッドを用いて、直近のツイートの情報を取ってきたり、あるユーザーの情報やDM、リストなど様々な値を取ってくることができます。
それぞれのメソッドについては以下のサイトにまとめてあったので、参考にしてください。
Ruby Twitter gemの簡易リファレンス
これ見ると、Twitterの機能全部が作れそうな気がします・・・w

まとめ

簡易ではありますが、Twitter gemの使い方とメソッドの調べ方をまとめました。
ただ、今回、OAuth1.0aやOAuth2.0 Bearer Tokenを使った場合のgemの使い方には触れていないので、表面的なものとなります。

#参考サイト
The Twitter Ruby Gem
参考コード
Ruby Twitter gemの簡易リファレンス

2
2
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
2
2