5分でRailsのTwitterBotを作る手順
やりたいこと
自動的にTwitterに通知するBOTを作りたい。
今回は、「Webエンジニアのためのテックブログまとめ」で、評価+100以上の記事を殿堂入りとしてTwitterにつぶやかせます。
前提条件
RailsまたはRubyで作っていきます。
TwitterBotを作る手順
Twitterアプリを登録する
Twitter Application Management
Create New Appから登録します
入力項目
- Name 「Tweet Bot」とか何でも良いです
- Description 「This bot post high quality entry.」とか適当に
- WebSite 「http://example.com」
作ったらアクセストークンを生成します
Keys and Access Tokensタブをを開いて、「Create my access token」ボタンをクリックします。
ここで作った4つのキーとトークンは投稿する時の認証に使います。
- Consumer Key
- Consumer Secret
- Access Token
- Access Token Secret
Twitter Ruby Gemをインストール
ファイル:/Gemfile
gem 'twitter'
そしていつものコマンドを打ちます
bundle install
GitHub - sferik/twitter: A Ruby interface to the Twitter API.
Rakeタスクを作る
/lib/tasks/bot.rake
require 'twitter'
namespace :bot do
client = Twitter::REST::Client.new(
consumer_key: ENV['TWITTER_CONSUMER_KEY'],
consumer_secret: ENV['TWITTER_CONSUMER_SECRET'],
access_token: ENV['TWITTER_ACCESS_TOKEN'],
access_token_secret: ENV['TWITTER_ACCESS_TOKEN_SECRET'],
)
task :tweet => :environment do
client.update('つぶやきの内容をここにいれる')
end
end
つぶやく
client.update("I'm tweeting with @gem!")
フォローする
client.follow(213747670)
ユーザー情報を取得する
client.user(213747670)
詳しいAPIのメソッドはコチラのリファレンスを参照してください
GitHub - sferik/twitter: A Ruby interface to the Twitter API.
TwitterAPIのアクセストークン等を環境変数に入れる
GitHubとかにアクセス情報をコミットしたくないので、bash_profileなどに入れちゃいます。
~/.bash_profile
export TWITTER_CONSUMER_KEY=hogehoge
export TWITTER_CONSUMER_SECRET=hogehoge
export TWITTER_ACCESS_TOKEN=hogehoge
export TWITTER_ACCESS_TOKEN_SECRET=hogehoge
環境変数を最新にするために、sourceしておきます
source ~/.bash_profile
Rakeタスクを実行してみる
rake bot:tweet
すると・・・つぶやきができるはずです。
こんな感じ