Twitterライブラリ
Twitter APIが簡単に使えるようになるTwitterライブラリを試す。
目次
- Twitterライブラリ
- Twitterライブラリを使う準備
- Twitterライブラリの使いかた
- Twitterライブラリをつかったコード
- コードの説明
- コードを実行する
- 実行結果
- Windows10環境でSSL証明書の認証エラーになる
- ツイートの制限
- 今回の実行環境
Twitterライブラリ
TwitterライブラリはTwitter APIが簡単に使えるようになるGem。
Webページは次のとおり。
RubyGemsドキュメント
The Twitter Ruby Gem
https://www.rubydoc.info/gems/twitter
Twitterライブラリを使う準備
Twitterアプリの作成
Twitterライブラリを使うにはTwitterアプリをつくる必要がある。
TwitterアプリをつくるにはTwitterのアカウントが必要。
TwitterアプリをつくるにはTwitterアカウントに電話番号を登録することも必要。
Twitterアプリをつくるには次のページからTwitterにサインインして必要な登録をおこなう。
Application Management
Twitter Apps
https://apps.twitter.com/
Permissionsタブの設定
Twitterアプリ内にPermissionsタブがある。
ツイートするだけならRead and write
をチェックすれば大丈夫。
他の設定は試していない。必要に応じて調べる。
Twitter APIと接続するために必要な値を取得する
Twitterアプリ内のKey and Access Tokens
タブ内から4つの値を得る。
Twitterライブラリの使いかた
Twitterライブラリのインストール
TwitterライブラリのインストールはRubyGemsから直接おこなうかbundlerをつかっておこなう。
今回はbundle installのpathオプションつきでインストールした。方法は後述する。
Twitter APIに接続する
変数名 = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end
Tweetする
Tweetする書式は次のとおり。
接続時に代入した変数名.update("ツイート内容")
Twitterライブラリをつかったコード
実際にコードを書く。
Rubyコードの他に.env
ファイルもつくりTwitterアプリで取得した値を設定する。
tweet.rb
require 'twitter' require 'dotenv/load' class Tweet # ツイートを初期化する def initialize @tweet = "ボート(レガッタ)全日本軽量級は終了\n次回は9/6から始まる全日本大学選手権(インカレ)の組合せと結果をつぶやく予定です" end def tweet # Twitter APIに接続する 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 # ツイートする client.update(@tweet) end end twitter = Tweet.new twitter.tweet
.env
consumer_key=************ consumer_secret=************ access_token=************ access_token_secret=************
コードの説明
dotenvやbundlerについては前の記事を参照。
コードを実行する
次の手順でコードを実行する。
- ターミナルのcdコマンドでtweet.rbと同じディレクトリに移動する
gem update --system
でRubyGemsを最新にするgem update bundler
でbundlerを最新にするbundle init
でGemfileをつくるgem 'twitter'
をGemfileに追記するgem 'dotenv'
をGemfileに追記するbundle install --path vendor/bundle
でディレクトリ内にgemをインストールするbundle exec ruby tweet.rb
でコードを実行する
実行結果
ボート(レガッタ)全日本軽量級は終了
— ローイングファン (@rowing_fan) 2018年5月21日
次回は9/6から始まる全日本大学選手権(インカレ)の組合せと結果をつぶやく予定です
ツイートできた。
データベースとつなげればレース結果のツイートにも使える。
Windows10環境でSSL証明書の認証エラーになる
Windows10環境の場合、次のようにSSL証明書の認証エラーになることがある。
SSL証明書の認証エラー表示
rescue in perform: SSL_connect returned =1 errno=0 state=error: certificate verify failed (Twitter::Error)
pemファイルをダウンロードしたらコードが実行できるようになった。
ただしpemファイルの理解ができていないので今回は紹介することを控える。
上のエラー内容で調べると解決方法はみつかる。必要に応じて対処する。
ツイートの制限
ツイートの連続投稿には制限がある。
Twitter Help Center
https://help.twitter.com/ja/rules-and-policies#twitter-rules
投稿数のリミットはTwitter Help Centerに書かれているより実際はもっと厳しいように思う。
投稿内容の重複にも制限がある。
投稿数や投稿内容によってはアカウントが停止になることもあるので注意が必要。
今回の実行環境
macOS 10.13.4
ruby 2.4.1p111
RubyGems 2.7.7
bundler 1.16.2
twitter 6.2.0
dotenv 2.4.0