#はじめに
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
に
gem `twitter`
を追加し、ターミナルで
gem install twitter
を実行し、インストールをします。
###2. gemを使う前の環境構築
冒頭の注意書きにも書いたように、Twitter APIに必要な各種keyとTokenがないと
Bad Authentication data
というエラーが出てしまいます。そこで、各種KeyとTokenを利用できるように
application_controllerに定義して、それぞれのcontrollerにbefore_acttionで認証していきましょう。
早速、application_controller.rb以下を記入。
@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内で
client = Twitter::REST::Client.new
を実行し、clientを定義します。
(別にclientでなくてもなんでも大丈夫です。とりあえず、Twitterモジュールに関連した変数を定義できればOK)
次に
client.methods
を実行するとズラーっと使用できるmethodsが出てきます。
このメソッドを用いて、直近のツイートの情報を取ってきたり、あるユーザーの情報やDM、リストなど様々な値を取ってくることができます。
それぞれのメソッドについては以下のサイトにまとめてあったので、参考にしてください。
Ruby Twitter gemの簡易リファレンス
これ見ると、Twitterの機能全部が作れそうな気がします・・・w
#まとめ
簡易ではありますが、Twitter gemの使い方とメソッドの調べ方をまとめました。
ただ、今回、OAuth1.0aやOAuth2.0 Bearer Tokenを使った場合のgemの使い方には触れていないので、表面的なものとなります。