物欲購入目録日誌 写真館
スポンサーサイト
--.--.-- (--:--) スポンサー広告
Twitterでつぶやく
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
「Ruby Twitter Gem」で作成するお手軽 twitter botの作成法!
2010.08.31 (23:29) 余談trackback(0)comment(0)
Twitterでつぶやく
gozaura.jpg


最近は仕事中でもサンプルコードを作ったり、参考ページを見たりしてtiwtter botを作成するのを楽しんでいるオイラですが、、ここらで参照したページや作り方などを簡単に解説しておきますかな。

オイラの開発環境は以下のような感じ。

・UNIXマシン(MacOS)
 rubyがインストールされていると楽です、あとお気に入りのエディタ。オイラはcarbon emacsです。

では早速作りはじめます。とその前にどんなbotにするのか考えておかないといけません。とりあえず、すぐに思いつく範囲で以下のような機能を持たすことにします。

(1) よるほ~機能

特定の時間に、特定のフレーズをつぶやく機能です。

(2) 情報を検索抽出し特定の記事の内容をつぶやく。本機能は以下の2つの情報を利用可能とする

(2-1) 特定のRSSから情報を取得し、RSSのタイトルとリンク情報を結合した情報をつぶやく。
この時、URLを外部APIを用いて短縮URLに変換して、特定のハッシュタグがあるものは付与する。

(2-2) twitter APIの検索機能を用いて特定クエリで情報を検索、マッチした記事をRTする。
RTの際はロボットつぶやきはなるべく排除しRTしないようにする。

(3) 認証方式はOAuth認証を利用する。旧来の認証なんと数日のうちで切れるからね。

といったことを簡単に考えた内容。結構単純ですが、それなりにめんどくさいこともあるのでどんどん実装してゆきます。

一番最初に一番重要なことは以下のライブラリを全面的に利用して作成します!

Ruby Twitter Gem

このライブラリでほとんどのことはできそうです。とりあえず、さっそくライブラリをインストールします。

$gem install twitter


はい。インストールされました。次になにかと便利なのでjsonもインストールします。

$gem install json


はい。インストールされました。

さっそく、上記のライブラリの参考ページなどを見たり悩んだりしてどんどん作ってゆきます。
基本的にrubyなどの知識があれば問題なく簡単なものは作成できますが、twitterならでは気をつけないと行けない点があります。

・同じ内容のツィートは何回も投稿できない

自動的に動かしているとどうしても同じ内容をツィートしてしまうこともあるのですが、同じツィートを短い時間で投稿するとエラーが帰ってきます。なにより同じ内容の投稿が続くのは見た目も最悪なのでなんとしても避けたいところです。

そこで、オイラはツィートした内容を外部ファイルなどに保存しておき、過去のツィートした内容かどうか必ず参照することによって同じツィートを防いでおります。☆もっといい方法あるかもしれないですが、、

・twitterのAPIを叩ける回数に制限がある!160回/時間

twitterAPIを利用して他人のフォローしているid番号の一覧などを頻繁に取得したいと思っていたのですが、、どうもそれは無理のようで、1時間に160回しか検索などを利用できないようです。それ以上APIをたたくとエラーが帰ってきます。

このような仕様のためにidのフォロー、フォロワー関係を利用してHITSなどを計算しようと思っていたのですが、事実上できない。

というかtwitterの中の人とすごいお金をはらっているgoogleの中の人だけが利用できるようで、すごいショックでした。

ということで、解説になっていないですが、上記の問題を考慮すれば参照しているtwitter gemのページと本家のページをそれなりに読んでいくとなんとかなりました。

というので、完成したロボがこれ

icon12829344653590.jpg
http://twitter.com/tachi_pic_bot

実際にこのrubyスクリプトを動かしているマシンはwindows 7のマシンにcygwinを入れてcronでず~っと動かしています。というか、、プログラムを作るよりcygwinでcronを実行できるようになるまですんげ~時間かかった、^-^;

さて、このロボの解説をしますと、上記の機能を実現しており、それなりな数のRSSから、以下のようなジャンルの情報をとってきます。

・けいおん
・京都アニメーション
・映画「カラフル」
・ラブプラス
・ニコン
・ソニー
・アップル・・・

などなど、アニメ、ガジェット系の情報を集めるように設定しています。 APIの検索機能はもうちょっと特定の情報だけを抽出するように設定しております。

といった感じで、ただいま下記のアカウントで絶賛稼働中ですので、もしよろしければフォローしていただけるとオイラが調子にのります!doko_004.gif

・@tachi_pic_bot
http://twitter.com/tachi_pic_bot
prevhome next












トラックバックURL
→http://tachiphoto.blog61.fc2.com/tb.php/1089-edda387d
home
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。