「ver.2.0*設置手順*手動実行編」の編集履歴(バックアップ)一覧に戻る

ver.2.0*設置手順*手動実行編 - (2010/06/23 (水) 22:07:04) のソース

#contents
*cronは後回し、まずは手動で
EasyBotter2.04beta.zipをDLしてきたらそれを解凍。
EasyBotter2.04betaフォルダの中に、いくつかファイルがあると思う。
最初はファイル名など一切変えず、簡易的に、最小限の機能を動作させてみる。

**OAuth認証のためのAccess TokenとAccess Token Secretを取得する
&color(#ff0000){''※Twitterにはbotアカウントでログインしておくこと!!''}
[[setting.phpの編集>>http://pha22.net/twitterbot/2.0/setting.php]]をよく見て、"このサイトでOAuth認証のキーを取得する"の通りにやってみる。


**setting.phpをテキストエディタで編集しよう
ここで一番大事なのは&color(#ff0000){文字コードに注意して編集、保存する。}
=|PERL|
$screen_name = ""; //botのid名
$access_token = ""; // Access Tokenの値
$access_token_secret = ""; // Access Token Secretの値
||=
を自分に合わせて編集するだけでOK。
編集し終わったら保存を忘れずに。


**bot.phpをテキストエディタで編集しよう
こちらも文字コードには気をつけて編集する。
bot.phpの中身は
=|BOX|
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
?>
||=
だけにして保存しよう。
(この設定では、2分間のリプライに対して追リプライをするようになります。)


**ファイルをサーバーにアップロードしよう
+PHP5が使えるサーバーで、PHPが使えるフォルダ以下に適当な名前のフォルダ(例:twitbot)を作る。
+使用するファイルすべてをフォルダへアップロードしましょう。
>twitbot~~┣ PEARフォルダ(中身も全部)~~┣ bot.php~~┣ data.txt~~┣ EasyBotter.php~~┣ log.dat~~┣ reply_pattern.php~~┗ setting.php
アップした.phpファイルと.datファイル(ログファイル)は、サーバーによってはパーミッションを変更(属性変更)しなければなりません。
パーミッション値は各サーバーのFAQ等に載っているはずですので、確認して下さい。
大抵はlog.datのパーミッションを変更するだけでOKです。
[[&ref(http://image02.wiki.livedoor.jp/e/i/easybotter_wiki/f88d16c9813c1397.png, 600)>http://image02.wiki.livedoor.jp/e/i/easybotter_wiki/f88d16c9813c1397.png]]
(アップロードの例。もちろん細部はレンタルサーバで異なる)

&color(#ff0000){''「ファイルをサーバーにアップロードしよう」項目はPHP以前にホームページ作成の基本知識です。~~これが分からなければEasyBotter設置は難しいです。ホームページ作成の知識から学びましょう。~~それが出来ないのであれば、厳しく言うと諦めた方が吉(プログラムの暴走などはサーバーへの負担、他のユーザーへ迷惑を掛ける原因になりえます。)~~簡易的にTwitter Botを作れる[[twitter bot GENERATOR>>http://twittbot.net/]]を利用することをお勧めします。''}

***ver1.42から引き継ぎの場合
一部のファイルは引き継ぎ可能です。
2.0と違う所はServicesフォルダとreply_random.phpは不要になるので、削除しても構わない。
OAuth認証が済んでいる人は、setting.phpの4つのキーはすでに取得したものを記入する。
//そしてOAuth.phpとtwitterOAuth.phpを忘れずにアップして下さい(同じフォルダを使うならそのままでいいです。)
//↑不要だよ、コメントアウトします
リプライ(パターン外の反応)を使うならtw.txtをdata.txtにファイル名を変えるか、bot.php内のdata.txtになっているところのファイル名をtw.txtに変える。
TLリプライを使うときは、reply_pattern.phpをコピーして使えますが、ファイル名を変えることを忘れずに!
詳しくは下のTL反応させてみようの注意にて。
//reply_pattern.phpとtw.txtにあたるdata.txtのパーミッションはログファイル用パーミッション値へ変更すること。
//↑読み込むだけなら666にしなくてOKなのでコメントアウトします
''※reply_pattern.php内の$reply_patternを、$dataに変更しておく必要があります。''
>任意のフォルダ名~~┣ PEARフォルダ(中身も全部)~~┣ bot.php~~&color(#ef007c){┣ data.txt(tw.txtにあたるもの)}~~┣ EasyBotter.php~~┣ log.dat~~ &color(#ef007c){┣ reply_pattern.php(リプライ用ファイル)}~~┣ reply_pattern.phpのファイル名を変えたもの(TLリプライを使う場合) 例:tl_pattern.php~~┗  setting.php
//&color(#ef007c){┗OAuth.php(すでにOAuth取得済みの人の場合必要)~~┗twitterOAuth.php(すでにOAuth取得済みの人の場合必要)
//↑不要だよ、コメントアウトします
となります。&color(#ef007c){■}色のものは1.42から引き継いで使えるもの


**bot.phpにアクセスしよう
サーバーへアップロードしたbot.phpにアクセスしてみよう(例:http://~/twitbot/bot.php)
真っ白なページに「2分以内に受け取った@はないようです。」と表示されれば準備は整いました!
''英語で何やら文字が並んでいる場合は、PHPエラーが発生しています。''
OAuth認証コードに間違いはないか、パーミッション値が合っているか、setting.phpやbot.phpでどこかおかしな記述をしていないかチェックし直そう。
**botアカウント(例:aaa_bot)へ話しかけてみよう
=|BOX|
@aaa_bot おはよう!
@aaa_bot 今日の運勢教えて!
||=
のどれかを、自分の本アカウントから発言し、botへリプライしてる。
その後、サーバーへアップしたbot.php(例:http://~/twitbot/bot.php)へアクセスする。
>Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:@本アカウント名 Good morning, master. http://twitter.com/aaa_bot/status/********
か
>Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:@本アカウント名 おはようございます、御主人様 http://twitter.com/aaa_bot/status/********
のいずれかが表示されれば、botのリプライ機能は成功です!
http://twitter.com/aaa_bot/へアクセスし、投稿されているかチェックしてみよう。
***補足
初期のままでは
「おはよ」「今日の運勢」「こんにちは」「こんにちわ」「こんちは」「こんちわ」「◯◯は好き?」「会話終了」
という言葉を含まないリプライへは、data.txtの中のどれか1行を追リプライします。


**ランダムPOSTもしてみよう
bot.phpの中身を
=|BOX|
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt"); 
?>
||=
にして保存しよう。再度bot.phpをサーバーへアップロードする。

>$response = $eb->postRandom("data.txt");
を追加することにより、bot.phpへアクセスした際data.txtの中のどれか1行を発言するようになります。

その後、サーバーへアップしたbot.php(例:http://~/twitbot/bot.php)へアクセスする。
>Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:コメント http://twitter.com/aaa_bot/status/********
と表示されればランダムPOSTは成功です!

"コメント"は
>いろはにほへと ちりぬるを~~わかよたれそ つねならむ~~うゐのおくやま けふこえて~~あさきゆめみし ゑひもせす~~ん
のいずれか。

***補足
>$response = $eb->postRandom("data.txt");
ではなく
>$response = $eb->postRotation("data.txt");
を追加した場合、data.txtの中の1行目を発言します。
2回目にアクセスした時は2行目を発言します。
!実際はすべて1行目を発言している。
1行目を発言した際、1行目にあった文章を一番下の行へ移動させ、2行目だったものが1行目になり、txtが改変保存される。
次回アクセス時に1行目(その本来2行目だったもの)をまた発言する。
&color(#ff0000){''※注意※~~この機能を利用する場合はdata.txtのパーミッションを、ログファイル用パーミッション値へ変更すること!!(例:666)''}


**自動フォロー返しを機能させよう
&color(#ff0000){自分の本アカウントと、aaa_bot互いにフォロー/フォロワー関係を解除して下さい。}
bot.phpの中身を
=|BOX|
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
$response = $eb->autoFollow();
?>
||=
にして保存しよう。再度bot.phpをサーバーへアップロードする。

>$response = $eb->autoFollow();
を追加することにより、bot.phpへアクセスした際、botアカウントをフォローしている人つまりフォロワーを自動でフォローするようになります。

本アカウントでTwitterにログインし、botアカウントをフォローする''(この時、まだbotアカウントで本アカウントをフォローしない!)''
その後、サーバーへアップしたbot.php(例:http://~/twitbot/bot.php)へアクセスする。
(リプライ、POSTと違って自動フォロー返し云々のメッセージは表示されません。)
http://twitter.com/にアクセスし、botアカウントが本アカウントをフォローしていれば自動フォロー返しは成功です!

**TL反応をさせてみよう
bot.phpの中身を
=|BOX|
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
$response = $eb->autoFollow();
$response = $eb->replyTimeline(2,"reply_pattern.php");
?>
||=
にして保存しよう。再度bot.phpをサーバーへアップロードする。

>$response = $eb->replyTimeline(2,"reply_pattern.php");
を追加することにより、bot.phpへアクセスした際、TL上の反応語句に反応し対象へリプライするようになります。

本アカウントとbotアカウントがフォロー/フォロワーの状態で
=|BOX|
こんにちは
||=
と、本アカウントで発言する。
その後、サーバーへアップしたbot.php(例:http://~/twitbot/bot.php)へアクセスする。
>Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:こんにちはこんにちは! http://twitter.com/aaa_bot/status/********
と表示されればTL反応は成功です!

&color(#ff0000){''!!注意!!~~botを実際運用する時は、TL用のパターンファイルを別に用意して下さい。(例:tl_pattern.php)~~リプライのパターンファイル(reply_pattern.php)をTL反応と共有してしまうと、多様な言葉に反応しスパムbot化してしまいます!!''}


*最後に…
このページでは一通り最低限の機能を動作させる為に、なるべく初期設定のままで解説を行いました。
が、実際に稼動させる際について注意したいのがdata.txtの扱い方です。
通常POSTとリプライで共有している状態かと思いますが、通常POST用とリプライ用で別にファイルを作ることをおすすめします。
例:通常POST用→data.txt リプライ用→replydata.txt
data.txtをコピーして改名するか、新規テキストファイルを作り(※文字コード等に注意)編集しましょう。

これでEasyBotterで出来る機能すべてを使いました。
あとはPHPを学び、EasyBotter.phpやreply_pattern.phpを編集することで色々な機能を自分なりにつけていこう。


*番外:cronで自動的に動かす
「cronは後回し!まずは手動で動かそう!」の項目すべてが問題なく終了したら、次はcronを使って自動化してみよう。

ここで使うcron(クーロン、クローン、クロン)とは定期的に自動でファイルにアクセスしてくれるものです。
毎回手動でアクセスしていては疲れますね。
それを時間設定してプログラムで自動的にファイルにアクセスしてくれるもの(叩くという言い方するところもあり)と考えてくれればいいです。
手動で1分毎、2分毎にアクセスしていれば疲れるように、自動プログラムとはいえcronの間隔が短ければ短いほどサーバーの負担は大きくなります。
それをよく考えて、適度な時間に設定しましょう

-cronサービスは自分の環境に合ったものを探そう
--設置サーバーとcronのサーバーの相性が悪くて、うまく作動しないこともあります。~~無料サーバー+無料cronの組み合わせは精度が低い場合が多いです。気になるようでしたら~~有料サーバー+有料cronにするか、自宅サーバー化して動かすかにしましょう。~~精度が低くて話にならないとクレーム付けるのはお門違いです。
--有料サーバーが提供しているcronを使用する場合は、各レンタル元の注意はちゃんと読みましょう~~レンタル元から最短でも何分間隔でと書かれています。設置解説を公開している所もありますが、意味が分からなければ~~まずその単語を理解してからにしましょう。解説サイトや掲示板でレンタル元が指定した時間より短い間隔で○分で~~動かしていると言っているところもありますが、乗せられないように。  ~~間違った設定はレンタル元も監視しているとはいえ、一時的に他ユーザーを巻き込んで停止処分されてしまいます。~~すでにいくつかのレンタルサーバーで、巻き添えを食らって一時停止を食らった人達もいます。注意しましょう。~~無理だと思ったら削除して、他で提供しているcronに変えた方がいいです
-cronの間隔は最低でも2分以上にしよう
--あまり間隔が短いと、サーバーに負荷が掛かる&うまく動作しないことがあります。
目安箱バナー