ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Slim3でTwitterのbotを作ってみた

2010-09-20 23:59:05 | PG(Java)

TwitterのbotをGoogleAppEngineSlim3)+Twitter4Jで作ってみた。
やれやれ、1~2日で終わらせようと思っていたのに、3連休全部使ってしまった(苦笑)

Slim3ではControllerをbuild.xmlで自動生成できるのが、地味に便利だ(笑)
URIに紐づいているのがパッケージ名・クラス名だけなので、Strutsだとstruts-config.xmlとかを書く必要があるけど、そういうのが無いから修正も楽だ。

Controllerの生成は、jspの生成を伴うものと無いものに分かれているのも良い。
Twitterの認証の様に他のURIにリダイレクトする場合はjsp不要。
Strutsでも出来るけど、Struts風の書き方ではなくなるような気がする。

botでつぶやこうと思ったらbot用のユーザーIDでOAuth認証を通しておく必要があるけど、毎回パスワードを入れるなんて有り得ないのでどうしようかと思ったが。
OAuthの申請時に「クライアント」と「ブラウザ」の2種類あって、GAEは当然ウェブアプリだからブラウザタイプと単純に思い込んでいたのがいけないようで、クライアントアプリにして暗証番号を画面から入力できるようにすればいいだけだった。(アクセストークンは当然DBに保持する。GAE・Slim3便利だ!)
つーか、このやり方でいいのかどうか分からんけど(苦笑)

GAEのcronqueueも便利だ~。
定期的につぶやく(Twitterに投稿する)にはcronを使うし、その際に実際の実行はqueueに任せるようにすれば、エラー時にも勝手にリランしてくれる。
もっとも、データに問題があって常に例外が発生するようなパターンだと、何度もリトライすることになってしまうが(汗)
そういえば、cronとかqueueって「どうやって実行するプログラムを指定するのか」と事前には思っていたけれど、実行するURIを指定するのな。ウェブAPIを使うことに慣れてなかったからその発想はしてなかったけど、もう当たり前なんだろうな~。

GAEの管理コンソールもさすがに一通り揃ってる。
DB(Datastore)の中も見られるし、削除も出来る。(プログラム内で検索条件・ソートに指定した項目は、自動的にインデックスも作られるようだ!)
ログも確認できるし、cronやqueueの実行状況、各URIのアクセス数なんかも分かるようだ。
強いて言えば、日付時刻はローカル(つまり自分だと日本・JST)に合わせて表示してくれるといいんだが。
(そういえば、Twitter4Jを使うと、起動時にログが出ちゃうんだよな。GAE上ではあまり意味が無いし邪魔なので、消す方法も調べたいところ…)

さて、でも今回作ったbotは、まだテストが完了してないんだよなぁ。
なにせ登録した文言を75日後にツイートするものだから(爆)
もしかしたら同じような発想のbotも既にあるかもしれない、というか有っても不思議じゃないし^^;


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Slim3をマスターした!(大嘘) | トップ | CFリプレイ『神の卵』 »
最新の画像もっと見る

コメントを投稿

PG(Java)」カテゴリの最新記事