何を食べたらいいのかを教えてくれるbotを作りたい
序論
お腹が空いて, 何食べようかな...と考えても, 何も思い浮かばないときってありますよね.
友達や家族と一緒にいるなら, 「何食べたい?」と尋ねればいいと思います..
しかし, 僕は基本的に1人でいます.
どうすればいいのでしょう.
こんな状況を打開したいので, botを作ります.
「何食べようかな」とつぶやくと, 適当な料理名を返してくれるようなbotが欲しいです.
作りました.
TwitterでBotを作る
Rubyのtwitterライブラリを利用して, botを作成します.
タイムラインから「何食べよう」という言葉を見つけたら,
つぶやいた人に適当な料理名を含むメンションを飛ばす, というものです.
手順1 Bot用Twitterアカウントを作る
Twitterアカウントを作ります.
アカウント作成の際にメールアドレスを要求されます.
Gmailアカウント1つで無限にメールアドレスを作成できます.
http://www.tabroid.jp/news/2013/10/gmail-manyservice.html
Gmailアドレスに "."や "+hoge"をつければ新しいアドレスになります.
手順2 いろいろKeyを取得する.
ここからConsumer Key, Consumer Secret, Access token, Access Secretを取得します.
よく分からなければググってください.
手順3 料理名の入ったファイルを作る
料理名がたくさん入ったファイルを作ります.
ここから料理名をサンプルして, メンションを飛ばすようにします.
豆腐丼 トマトとなすのカレー トマトのチキンドリア 鶏雑炊 ねぎとろ丼 バターライス ひつまぶし ピザ 豚丼 豚の生姜焼き丼 ほうれん草のグラタン 舞茸丼 ミラノ風ドリア ミートソースドリア 焼きおにぎり ライスバーガー レタス炒飯 (以下, 1000個くらい続く)
適当なWebサイトなどからコピペして整形します.
ファイルの名前はryouri.txtとして保存しておきます.
豆腐丼は美味しんぼで快楽亭ブラックさんが作っていました.
究極メニューvs至高のメニューの豆腐対決の回で出てきました.
- 作者: 雁屋哲
- 出版社/メーカー: 小学館
- 発売日: 2013/01/01
- メディア: Kindle版
- この商品を含むブログを見る
手順4 コードを書く
rubyのtwitterライブラリを利用します. gemとかでインストールしてください.
#!/usr/bin/ruby -Ku # which ruby として, rubyの場所を確認して入力 require 'twitter' require 'pp' require 'rubygems' require 'kconv' # 取得したKEYなどを入力 @client = Twitter::Client.new( :consumer_key => "CONSUMER_KEY", :consumer_secret => "CONSUMER_SECRET", :oauth_token => "OAUTH_TOKEN", :oauth_token_secret => "OAUTH_TOKEN_SECRET ) username = 'gg_hatnao_bot' # botの名前 loop{ begin timeline = @client.home_timeline() rescue Timeout::Error, StandardError puts "タイムラインが取得できませんでした" else timeline.each{|status| if status[:text].include?("何食べよう") && status[:user][:screen_name] != username ryouri_array = open("ryouri.txt").read.split("\n").delete_if{|tweet| tweet.strip.empty?} ryouri = ryouri_array.sample str = "@#{status[:user][:screen_name]} #{ryouri}" pp str @client.update(str) end } end sleep 60 # 60秒に1回タイムラインを取得して反応 }
手順5 実行してみる
このrbファイルを実行すると...
ちゃんと反応してくれました.
ほうれん草のグラタン食べます.
感想
これでぼっち飯が捗りますね!