サーバにアップ不要、cronがなくても大丈夫!botを動かす方法(Windows編)

そろそろOAuthの対策をせねばならんのですが、まだ対応しきれていない状態です。
6月までまだ時間あるしねー。うんうん。今日は表題どおり、サーバを借りなくてもbotが動かせるという裏技的なものをやりたいと思います。

phpが動く環境を用意する

レンタルサーバ不要といっても、phpが動作してインターネットに繋がるWinマシンは必須です。常時接続ならなおよし。
それではお好みのbotスクリプトを用意して下さい。ここでは例として単純にhelloとだけ表示するスクリプト(hello.php)を用意しました。

コマンドラインで動くかどうか確かめる

アクセサリの中からMS-DOSプロンプトを起動します。真っ黒な画面のアレです。

xampp使用時の例

C:\xampp\php\php.exe C:\xampp\htdocs\hello.php

これはどういうことかというと、Cドライブ直下にあるxamppディレクトリの中のphpディレクトリのそのまた中のphp.exeというアプリケーションを使って、htdocsの中にあるhello.phpを実行せよという命令なんです。
こんな長くて味気ない、間違やすそうな文なんて打ってられないという人は、該当のファイルを右クリック、リンクで場所を知ることが出来ます。意外と知られていないですがMS-DOSプロンプトはコピーやペーストが使えます。タイトルバーを右クリックすればわかります。

リターンキーを押したら「hello」の文字が出ましたよね?(botスクリプトの人はbotが動作)動かない場合は何らかのエラーですのでパスが正しいか等確認してみて下さい。

パッチファイルを作る

無事、コマンドラインで動かせたら上記の文をそのままコピーして、メモ帳で新規ページを作成、ペースト。
このまま保存します。ファイル名はなんでもいいですが半角英数が無難でしょう。拡張子は.batです。自分のわかりやすい場所に保存します。

アイコンがメモ帳じゃない、変わった形になったでしょうか?試しにこれをダブルクリックするとphpが実行されると思います。
(されない場合はどこかでミスをしています)これがバッチファイルです。本当に単純な書き方しかしていませんが、色々カスタマイズできるので気になった方はネットで調べてみて下さい。

タスクスケジューラで定期実行する

Windowsに標準で搭載されているタスクスケジューラを起動します。

その前に、この機能を使うにはアカウントのパスワードが必要です。作ってない方は先に作成しておく方がいいです。
設定はコントロールパネル>アカウント から。難しいことは特にありません。


実行するアプリを聞かれますので…

参照でさきほどのバッチファイルを指定。

ここでは1日としておきましょう

アカウントとパスワードを設定します

細かい設定をしたいのでここのチェックは忘れずに!(忘れても後で設定出来ます)

詳細設定…

細かい分単位で指定出来ます!

だいたい、見ればわかる指定の仕方だと思います。

これが終わればあとはスケジューラの動作を待つだけ!

利点としてはレンタルサーバ代がかからない、cronの挙動に一喜一憂することがない、等ありますが欠点も同じくらいあります。
ネットに繋がったパソコンでなければ動作しない。

いらないPCがあって常時接続の環境ならbot用に使うのもまた一興?あるいは、リプライやTL反応なんかの激しいアクセスはいらない、自分がPCしてるのと同じ頻度で定時postがあればいいやというbot作者の方にもいいかもしれませんね。

次回は需要が少なそうですがMac編もやります。バッチファイルがないかわりにAutimator等を使います。