2月14日は、バレンタインデーでしたね。
朝からtwitterのTLでもチョコをもろただの、欲しいだの、日本中がなにやら浮かれていたので、
皆さんは、ホットドッグ・プレスという雑誌を覚えているでしょうか?
いわゆる男子向けのおしゃれ?で、下世話?な、サブカル情報誌です。
その雑誌の中で、先生は『試みの地平線』というハードボイルドな人生相談を連載されていました。
内容的には若者が悩みを相談すると、「小僧ども!」という出だしから、先生がハードボイルドに回答してくるというものでした。(閲覧注意)
当時、田舎の小僧だった僕たちにとって、その内容は日常の純潔とはかけ離れた、かなり過激な内容でしたが、真摯な態度と本質をつくまっすぐな意見は、なんだか心に響いたものでした。
そんな先生のbotを2~3年くらい前に勢いでつくってみたのですが、2010年にtwitterの認証方法が、ベーシック認証から、OAuthに変わった時、対応させようにもよくわからなくて、面倒くさくなって、そのまま停止させてました。
2月のある日、出社して、何を思ったのか、ふとアカウントにログインしてみると、停止しているにも関わらず、日に1件くらいは、相変わらず先生に悩みを打ち明けている人たちがいました。
そんなこんなで、バレンタインデー。放置していたOAuth認証に真面目に向きあってみたという流れです。
その際、いろいろなサイトを参考にしながら作業したのですが、いくつか詰まるところがあったので、備忘録的にプロセスを書いておきます。
まず、botを作るには、以下のリンクからtwitterへアプリケーション登録をする必要があります。
アプリケーション登録をすると、「Consumer key」「Consumer secret」「Access Token」「Access Token Secret」を取得できるので、これらを利用して認証をします。

登録するtwitterIDにログインした状態で、twitter developersにログインします。

Create new applicationをクリックします。

名前、概要、URLを入力し

規約に同意して、見えにくい文字認証を入力し、Create your Twitter applicationをクリックします。

アプリケーションのページに移動します。Create my access tokenをクリックして、Access Tokenを表示させます。

今回は投稿をするので、settingタブをクリックして

Access levelをRead, Write and Access direct messagesに変更します。Read and Writeでも大丈夫だと思いますが、あとあと変更するのがめんどくさいので、フルフルにしてみています。(僕はこの部分を見逃していて、2時間ほど無駄な時間を過ごしました・・・)
認証に関してはOAuth.phpとtwitteroauth.phpを利用しまました。以下のgithubで配布されています。
https://github.com/abraham/twitteroauth
よくわかりませんが、これらを利用したことで、ほんのちょっとプログラム書いただけでbotが出来ました。
$consumer_key=”hoge”;
$consumer_secret=”hogehoge”;
$access_token=”hogehogehoge”;
$access_token_secret=”hogehogehogehoge”;
$twitter = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$update_url = ‘https://twitter.com/statuses/update.xml’;
$method = ‘POST’;
$message = ‘うんこ’;
$params = array(‘status’ => $message);
$twitter->OAuthRequest($update_url,$method,$params);
普通に「うんこ」と投稿するだけなら、このように10行書いて実行するだけでいけます。
あとは、適当にmentionsを取得して、解析して、差分に対して返信するようにするだけです。
phpを知らない僕でもできました。簡単ですね。
もしも、bot作ってみたいなーと思ってる人がいたら、是非どうぞ。
不明な点などありましたら、@kitakata_kenzo宛にお願いします。





