RubyでサクッとTwitter Bot

twitter

概要

プログラムで自動的にTwitterにpostしたいという場面が結構あると思います。本記事では、rubyのパッケージ「twitter」を使って、自分のアカウントでツイートするまでの過程を解説します。

必要なもの

  • twitterアカウント
  • サーバー(記事執筆時点の例)
    • ruby(2.5.1)
    • gem:twitter

前準備

1. アクセスキーを得るために、任意のツイッターアカウントでアプリ登録します。

(1) https://apps.twitter.com/app/newにアクセスし、必要な情報を入力してアプリケーション登録を行います。

Twitterアプリは携帯電話番号を登録していないと新規に作成できません。

上の画像のようなエラーが表示される場合、「Twitter -> 設定とプライバシー -> モバイル」から携帯電話番号を登録しましょう。

(2) 登録が完了すると、下記のような画面に遷移します。

ページを閉じてしまった場合、https://apps.twitter.com/からアクセスが可能です。
Consumer Key (API Key)の箇所のKeys and Access Tokensから、以下の情報を保存してください。
・Consumer Key (API Key)
・Consumer Secret (API Secret)
今回は自分のアカウントでツイートするので、「Create my access token」をクリックしてアカウントのアクセストークンを発行します。
Your Access Tokenの箇所が下記の画像のようになるので、以下の情報を保存します。
・Access Token
・Access Token Secret

2. rubyパッケージ「twitter」をインストールします

gem install twitter

プログラムの作成・実行

サンプルプログラム:一言ツイートするシンプルなプログラムです。
仮にtweet.rbと名前をつけて保存します。

#!/usr/bin/ruby
require 'twitter'

client = Twitter::REST::Client.new do |config|
  config.consumer_key = ""
  config.consumer_secret = ""
  config.access_token = ""
  config.access_token_secret = ""
end

client.update("これはテストです")

実行:コンソールで下記コマンドを実行

ruby tweet.rb

ツイートが反映されました。

おまけ

サンプルプログラム:list.txtの内容からランダムに一行読み込んでつぶやきます。

#!/usr/bin/ruby
require 'twitter'

client = Twitter::REST::Client.new do |config|
  config.consumer_key = ""
  config.consumer_secret = ""
  config.access_token = ""
  config.access_token_secret = ""
end

textlines = Array.new
File.open("list.txt", mode="rt"){|f|
  textlines = f.readlines
}

client.update(textlines.sample)

参考サイト

▼sferik/twitter: A Ruby interface to the Twitter API.
https://github.com/sferik/twitter