三村botの作り方

· サービス

先のエントリーで三村botの復活をお知らせしましたが、その作り方をご紹介

環境

用意したものは、

  • twitterアカウントとOauth認証キー

  • phpとmysqlとcron

  • mecab

twitterアカウントとOauth認証キー

まずbot用のアカウントを用意します。

そして、ここ(https://dev.twitter.com/)でアプリケーション登録すると、Oauth認証に必要な各値(Consumer key,Consumer secret,Access Token,Access Token Secret)が取得できます。これらをメモっておきます。

phpとmysqlとcron

LAMP環境であればだいたい揃いますね。別にwebサーバは無くていいです。

また、TwitterのOatuh認証用ライブラリも利用します。

mecab

三村botのつっこみは、フォロワーのツイートから単語(名詞)を抽出してつっこむパターンがあります。この名詞抽出部分でmecabを利用します。形態素解析というやつですね。

また、php-mecab連携のライブラリを作ってくださった方がいるのでありがたく利用させていただきます。

インストール方法については、「php mecab」あたりでぐぐると出ますので、そちらにお任せします。

設計指針

一応つっこむツイートはランダムにはしたいけど、できるだけフォロワー全員を突っ込むよう工夫してます。

フォローしたのにつっこんでくれないよう><、みたいことは避けたいなとw

処理概要フロー
  • (全員つっこみ終わってたら)フォロワー一覧取得

  • ランダムに一人のフォロワーを選んで、最新つぶやき取得

  • そのつぶやきからつっこむツイート生成

  • つっこみポスト

上記処理を毎分cronで走らせてます。

注意

気をつけないといけない

  • twitter APIが350回/hの制限があること

  • twitter APIの返りに必ずデータが入ってないこと

こんな不安定なの?ってぐらいAPIは信用できませんw

それを元に設計しないと、構想してたのができねー、ってなるので注意です。

twitter API(本家)

twitter API(日本語)

まとめ

以前作ったときは、まだbasic認証だったのとAPI制限も60/hだったので、その頃とは少し詳細仕様が変えました。より理想に近い形にはなったかなーと。

そのうちプログラムはgithubで管理したいなーと思ってますので、できたら追記しておきます。