TwitterBOTを作る手順メモ

2010/5/14 「6. cron用のファイルを作成する」のサンプルがそのままコピーしても動かなかったようなので修正

自分が実際にBOTが動くまで行った手順をまとめてみました。
WindowsXP SP3で作成しています。他のOSでは一部違う所もあるかもしれません。

2011年10月現在このページに書かれた方法では上手くBOTが動かないようです。他のサイトを参考にしてください。

BOT本体を作る

プログラミングができなくても作れるTwitter botの作り方
こちらのサイトを見れば「定期的に文章をpostする」「@付きのレス中の特定の単語に反応し、それに応じたレスをする」といったシンプルなBOTならCGIの知識が一切ない人でも作れると思います。
webから文章を拾ってくるなど特殊なものは自分でスクリプトを書かないと無理です。
ここの説明を見ながらBOTを作りPHPを使えるサーバー(無料だと@pagesland.toとか)に設置します。
だれかがPHPファイルにアクセスした時だけ投稿するBOTならこれだけでも問題ないです。

Google App EngineでBOTを自動投稿させる

自動で定期的にBOTを動かすにはcronというものを使うのですが
レンタルサーバーについてくるcronは無料・有料に関わらずどこも制限が厳しいようなので(さくらの例)、自宅サーバーじゃないと使いづらいかもしれません。
cronのみを提供してくれるwebサービスだとWebcron.org は有料(評判良いので本格的にやりたい人は選択肢に入れても良いと思います)、 cron-job.orgはかなり不安定だったので ここではGoogle App Engineを利用した方法で説明します。

Google App Engineについて

このサービスはメールを受信できる携帯電話を持っていないと利用できないので注意してください。(使用するのは登録時の認証だけでその後は使いません。機種によっては認証できないケースもあるようです)
そして完全無料という訳ではなく従量課金制です。
Google App Engine の課金についてのよくある質問 - Google App Engine - Google Code
無料で使えるのは「永続的ストレージ 500 MB、月に約 500 万ページ ビューの処理に十分な CPU と帯域幅」のみで、無料の状態でそれを越えるとサービスが停止してしまい、動かすには越えた分だけお金を払う必要が出てくるようです。
(普通にTwitterBOT用cronだけ使ってる分には大丈夫だと思いますが)

1. Googleのアカウントを作成する

Google アカウント
登録に使ったメールアドレスがID代わりになるのでパスワードと共に覚えておいてください。
すでにアカウントを持っている場合ここは飛ばして2へ。

2. Google App Engineを登録する

自分の携帯電話を手元に用意しておき、
App Engine アカウント
Googleにログインした状態でここにアクセスし、以下を入力します。

Country: Japan
Carrier: 自分の携帯の機種やメールアドレスのドメインに合わせて選択
Username: 携帯メールアドレスの@から左の方の文字列(「sample@xxx.ne.jp」なら「sample」)

3. コードを入力する

2の入力が上手く行けば自分の携帯にメールが届くので、コード入力ページで届いたメール中に書かれたコード(「Google App Engine Code:」の右にある数字)を入力します。
上手くいかなかったらこのあたりを見てください。残念ながら解決できなかった人もいるようです。
Google App Engine SMS認証 - Google 検索

4. Google App Engine上にcronを設置するアプリケーションを作成する

以下を入力します。

Application Identifier: アプリID。6~30字の半角英数。アプリのURLの一部になります。英字は小文字のみ、記号も使えません。既に存在するIDと被っていると作れないので被らなそうな名前にして「Check Availablity」ボタンを押し「Yes,~」から始まる文章が出るのを確認してください。
Application Title: アプリのタイトル。半角英数のみで日本語は使えません。自分でわかりやすい名前を。

アプリは全部で10個作れます。1度作ったら削除できないようです。ご注意を。(削除できるようになったようです)
この時点で作らなくても多分Googleにログインした状態でApp Engineのページに行き「Create an Application」ボタンを押せば作れると思います。

5. Google App Engine SDK for Pythonをインストールする

まずPythonをインストールし、(バージョンは2.5.4で動かず2.6.4で動いたという情報あり)
ダウンロード - Google App Engine - Google Code
ここから自分のOSに対応したGoogle App Engine SDK for Pythonをダウンロードしてインストールしてください。

6. cron用のファイルを作成する

まず自分のPCがファイルの拡張子を表示しない設定になっていたら表示するよう設定してください。
ローカル(自分のパソコンの中の事です)のどこでもいいのでフォルダを一つ作成し、自分でわかりやすい名前をつけておきます。
ただしパスは全て半角英数に統一したパスになるようにしてしてください(例えば「D:\TwitterBot\cron_1」と、いった感じ) ちなみにこれは日本語に対応していないソフトウェアを使う時の常識です。

作ったフォルダの中に3つのcron用ファイル「app.yaml」「cron.yaml」「task.py」を置きます。

「app.yaml」「cron.yaml」「task.py」詰め合わせzipファイル。
3つ全て中身をテキストエディタで開き、【】部分を自分のBOTに合わせて書き換えてください。
(例えば「schedule: every 【BOT投稿間隔(分単位/半角数値/最大99)】 minutes」の行なら「schedule: every 30 minutes」と書き換えると30分に一度投稿するBOTになります)


cronファイルを置いたところ。

以上こちらのページから一部改変し引用させていただきました。
【Twitter bot 開発】柴犬botを作成(自動でつぶやく版) | Think.(http://www.proto-star.com)
こちらのページも参考にさせていただきました。
ksnn diary ≫ Google App EngineでTwitter botを作る

7. cron用のファイルをGoogle App Engine Launcherでアップロードする

まず5でインストールしたGoogle App Engine Launcher(インストールフォルダ\launcher\GoogleAppEngineLauncher.exe)を起動します。

ここの「Add~」で始まる項目を選択し、6で作成したフォルダを参照してください。


アップロードしたいファイル項目を選択した状態で水色の部分の「Deploy」ボタンを押し、 Googleアカウントのメールアドレスとパスワード(Googleにログインする時入力するものと同じ)を入力します。
オレンジの部分の送信ボタンをクリックするとアップロードを開始します。 (送信ボタンがなぜかうちの環境では隠れてよく見えませんでした)
ちなみに「Projects:」の横にある文字列はアップロード先アプリIDです。存在しないIDにアップロードしようとしても失敗するので気をつけてください。

8. アップロードしたcronを確認する

Googleにログインした状態でApp Engineのページに行き7でアップロードしたアプリの項目をクリックし、左メニューの「Cron Jobs」をクリックしてください。

こんな風になってたら成功です。(画像はBOTが30分置きに正常に動いている状態)
反映されるまでしばらく時間がかかることがあります。

ちなみにGoogle App Engineのcronは最短1分間隔で設定できるようですが、PHPの設置しているサーバーがあまり頻繁なアクセスを許可していない場合もあります。
そのため間隔はあまり短くしすぎない(5分間隔など)方が無難だと思います。

リンク

以上を実行してつまづいた人はこちらを見るとヒントがあるかもしれません。全て外部サイトです。
Re*lier | GAEでcronを動かすメモ
L/S's diary | twitterの自動ボットを作ってたよ
雑記/ 備忘録その2 :: モヤプー

そのほか

ここに書いてある内容は知識がほとんどない人間が調べながら書いてるので質問されても答えられません。むしろ私が聞きたいぐらいです。
わからない用語があればGoogleで検索すれば大体はわかると思います。
もし間違いがありましたら直します。連絡先はこちら。
メール:met□ls□k□n□@hyper.cx(□をaに) サイト:http://twitter.com/ueda_c  http://www7.atpages.jp/nd2/