レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
Twitter Bot初心者質問スレ
どんな初心者レベルの質問でも質問していいスレッドです。
内容もTwitter Botに関するものなら何でもありです。phaさんのスクリプト以外の質問もOKです。
でも返事が返ってくるかどうかはたまたま分かる人がいるかどうかなので、返事が返ってこなくても泣かない。
返答してくれた人にはお礼をね。
>>235
そうなんですか!ちょっと鯖移動考えてみます…。
>>233
一つのcronジョブで2分おきにしてる?
それとも複数のcronジョブをずらして2分おきにしてる?
初めまして、初心者です。
ぜひ、教えていただきたいのですが。
現在、EasyBotter2.04betaを利用中。
レンタルサーバーは「さくらインターネット」を利用しています。
http://pha22.net/twitterbot/ こちらの手順に従い、OAuth認証用のキーも取得し、
いざ、botを動かそうと、EasyBotterにアクセスした所、エラーが出てしまいました。
・・・・・EasyBotter.php on line 49と表示が出たので、EasyBotterを開き、「49」行目を確認しましたが、
どこが間違っているのがさっぱり分かりません。
require_once 'HTTP/OAuth/Consumer.php';
と書いてある所です。
どのように設定を変更したらいいのか、ぜひ教えてください。
よろしくお願いします!!
>>238
setting.phpの4つのOAuthキー入力が間違ってないかもう一度確かめた方がいいと思う
>>239
ありがとうございます!!
OAuthキーの再入力をしたところ、今度はまた別のエラーが出てきてしまいました。。
今度はbot.phpの5行目へのエラーです。
特にいじってはいないのですが・・・お分かりになりましたらぜひお願いします!!
>>240
>>161 読みなされ
>>241
申し訳ありません。
【バージョン】EasyBotter2.04beta
【設置鯖名】 さくらインターネット
【PHPのバージョン】
【実行】 CRON鯖名「さくらインターネット」
ブラウザ自動更新
【手動】 動かない
【不明点など】 以下のエラーが表示。
Fatal error: require_once() [function.require]: Failed opening required 'EasyBotter.php' (include_path='.:/usr/local/php/5.2.12/lib/php') in /home/****/www/******/bot.php on line 5
以下のどこをどのように直せばよいか分かりません。
一応、スレは読んだのですが分からずに質問させていただきました。
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
//=============================
//botの動作をここに書いてください
//先頭に//がある行はコメント扱いなので実行しません。実行したい行の頭の//を削除してください。
//=============================
$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(2,"data.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");
改めて、よろしくお願い致します。
>>242 です
書き忘れました。
【PHP】のバージョンは PHP 5.2.12 です。
よろしくお願いします。
>>242
エラーの意味はわかってらっしゃいますか?
Google等でエラー文を検索すればすぐにわかりますが、
関係あるのはbot.phpではなくEasyBotter.phpの方です。
EasyBotter.phpを弄っていないのであれば取るべき方法は限られます
・アップロードされているか
・文字コード、改行コード
・アップロード時にバイナリモードか、文字コード等がかってに変えられていないか
これらを再確認してください。
時間がある時にでも
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259657570/168
も読んでみて下さいね
>>244 さん
勉強不足で申し訳ありません。
エラーの意味も分かっていないまま質問してしまいました。
でもおかげさまでなんとかエラー表示されずに進むことが出来ました。
ただ投稿が出来ないので、また調べなおしです。
全くの初心者で、質問ばかりして申し訳ありませんでした。
ありがとうございました。
【バージョン】Ver.2.0.3&2.0.4
【設置鯖名】 xrea
【PHPのバージョン】 5.2.5
【実行】 まだ手動
【手動】 動かない、EasyBotterというタイトルの白紙ページが表示される
【不明点など】
ttp://アカウント名.sサーバー.xrea.com/xxxxx/bot.phpにアクセスすると真っ白になり投稿も何もできない
data.txtは見えています
しばらく1.4を使用していたのですがもっと多機能にしたくて2.0のダウンロードしたファイルを
何もいじらずそのまま手順通りにアップロードしてテストをしようとしていたのですが
ここでつまづいてしまいました…
問題など指摘していただけないでしょうか…
>>234
Mention を投げて、手動でアクセスしてもワードに反応しないのでしょうか?
・設定はこの値になってます? $useReplyPattern = TRUE;
・パターンファイルの文字コード・改行コード、 ) や ; , の過不足はないですか?
>>246
まず>>161 をチェックください。
あとこのスレの全レスに目を通していただければ、糸口が見つかるのではと。
>>247
手動なら動いてるみたいですよ
改造方法について質問させて下さい。
【バージョン】Easybotter 2.04beta
【設置鯖名】さくら
【PHPのバージョン】5.2.1
【実行】GAE-Cronとsetcronjob
【手動】動く
【不明点など】改造場所がわかりません。
現在テスト中ではありますが基本の定時ポスト・リプライは問題なく動いています。
Botの改造方法を紹介するスレの3
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259840844/3
こちらの「単語拾いを実装する」を1.43で使っていたので今回2.04でも実装したいと思っています。
2.0のEasyBotterの135行目辺り
//リプライを取得
$response = $this->getReplies();
$response = $this->getRecentTweets($response, $cron * $replyLoopLimit * 3);
$replies = $this->getRecentTweets($response, $cron);
$replies = $this->selectTweets($replies);
$replies = $this->removeRepliedTweets($replies);
の下の方に入れるといいのではと考えてやってるのですがうまくいきません。
1.43ではリプライが$messageでしたのでそこを$replyTweetsや$responseに変えても駄目でした。
エラーが出た場合は書き足したところ、またはエラーが出ずリプライがスルーされる
(反応するリプライはありませんと言われる)
まだ勉強中なので見当違いのことをしていると思います。
どこを改造すればいいかご教示下さい。
お世話になります。
【バージョン】 2.04beta
【設置鯖名】 さくらインターネット
【PHPのバージョン】 PHP 5.2.12
【実行】 GAEcron(15分間隔で動作するよう設定)
【手動】 動きます。
【不明点など】 リプライに10回に1度程度しか反応しない
【パーミッション・文字コード】共に確認済みです。
通常のランダムpostは問題なく動きますし
自動フォローも動いていますが、リプライにのみ「たまにしか」反応しません。
20回ほど試してみたところ、2回だけ反応がありましたが
これは>>217 さんがお書きになられているような
Twitter側の不具合によるものなのでしょうか?
別アカウントからリプライを送った直後に
bot.phpを手動で叩けば、通常postとともにリプライにも反応しています。
ちなみにbot.phpは以下のように設定しています。
--------------
$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->replyTimeline(2,"reply_pattern.php");
--------------
お手数ですが、どなたかアドバイスをいただけると助かります。
>>251
リプライ用に用意しているツイートパターンが少なすぎて重複規制にあってる、というわけではなく?
>>250
//「◯◯は好き?」という発言を受け取ると「◯◯おいしいです」と返す正規表現のサンプルです
//ただし「◯◯」の前には空白か「、」か「。」を入れないと「は好き?」以前の文章が全て繋がって表示されます
"([^\s、。]+?)は好き?"=> array(
"$1おいしいです",
これじゃだめなの
>>253
レスありがとうございます
その//「◯◯は好き?」という発言を受け取ると「◯◯おいしいです」と返す正規表現
だとその決まった形式でしか受け取れませんが、あの改造だとどんなリプライに対しても返せるので。
現在走らせてる1.43でも割と好評なので、できることなら改造の方でやってみたいのです。
何とかお力添え願えればと思います。
>>254
reply_random.phpでいう
//ここで投稿するメッセージが完成
$message = "@".$replies2[$i]["screen_name"]." ".$message;
はEasyBotter.phpでいう//リプライを作る の下のほうにある
$re["status"] = "@".$reply_name." ".$status;
に値するとだけ言っておきます
>>255
やはり場所を勘違いしてました。
ありがとうございます!
お陰さまで実装できました。
連投すみません。
他にもしかしたら改造したい方もいらっしゃるかもしれないので、一応。
リプライを作る前ではなくて文章の変換の辺りに書き込む・更に少し改造する事で上手くいきました。
>>252 さん
data.txtには400語ほど入っています。
「試しにbotを動かしてみる」に
「tw.txtとreply_pattern.phpとlog.datのパーミッションを
666に設定してください。」とありますがtw.txtというのはどのファイルのことでしょうか?
とりあえず、data.txtのパーミッションを666にしてブラウザでアクセスしてみたところ
Fatal error: Uncaught <table border="1" cellspacing="0">
<tr><td colspan="3" bgcolor="#aaaaaa" align="center"><b>Exception trace</b></td></tr>
<tr><td align="center" bgcolor="#cccccc" width="20"><b>#</b></td><td align="center" bgcolor="#cccccc"><b>Function</b></td><td align="center" bgcolor="#cccccc"><b>Location</b></td></tr>
<tr><td align="center">0</td><td>HTTP_OAuth_Consumer_Request->send()</td><td>/home/httpd/ikokoro/public_html/twitterbot/PEAR/HTTP/OAuth/Consumer.php:250</td></tr>
<tr><td align="center">1</td><td>HTTP_OAuth_Consumer->sendRequest('https://twitter. …', Array, 'POST')</td><td>/home/httpd/ikokoro/public_html/twitterbot/EasyBotter.php:515</td></tr>
<tr><td align="center">2</td><td>EasyBotter->_setData('https://twitter. …', Array)</td><td>/home/httpd/ikokoro/public_html/twitterbot/EasyBotter.php:526</td></tr>
<tr><td align="center">3</td><td>EasyBotter->setUpdate(Array)</td><td>/home/httpd/ikokoro/public_html/twitterbot/EasyBotter.php:121</td></tr>
<tr><td align="center">4</td><td>EasyBotter in /home/httpd/ikokoro/public_html/twitterbot/PEAR/HTTP/OAuth/Consumer/Request.php on line 214
というメッセージが出ます。
何度やりなおしてもこのメッセージ。
根本的にまちがっているのでしょうか?
よろしければ助言をお願いします。
サーバーはland.toです。
>>259
それはphaさんの書き間違いで、data.txtのことです
1.42まではtw.txtだった名残ですね
>>251
ええと reply() の第1引数に 2 をしていますが、
要は2分前までの mentions にしか反応しません。
cronを15分間隔で叩くのなら、ここは 15 にしませんと。
同様に replyTimeline もですね。
>>259
Fatal error: Uncaught についてはこのスレッドで頻出ですが、
現在ハッキリとした原因は提示されていません。
基礎的なことを押さえておけば出ないものと思いますが、
もしどうにもならない時は、使用サーバの変更で何とかなるかも知れません。
>>262
うらさんレスありがとうございます。
頻出でしたか… すみません。
自分の知識ではどうにもならないようなので
サーバーを変更してみます。
連続してすみません。
サーバーを@PAGESに変えて、そのままのファイルをアップしたら
Fatal error: Uncaught はなくなりましたが
-----------------------------------
Twitterへの投稿に失敗しました。
ユーザー名:@■■■■■
object(SimpleXMLElement)#5 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(23) "Invalid / expired Token"
}
2分以内に受け取った@はないようです。
-----------------------------------
というメッセージが出ました。
私がどこかのファイルの記述を間違っているのでしょうか?
何度もすみませんが、ご助言お願いします。
試行錯誤を繰り返し、やっとbotが昨日動いた初心者です。
知恵を貸してください。
【バージョン】Easybotter 2.04bata
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE(フリーのweb-cronサービス)
【手動】 動く
【不明点など】
TLの言葉に反応しない?
普通に@付きリプライには反応するのですが
どうやらTL上の言葉に、作って以来一度も反応していないようです。
cronは5分おきに、data.txtは8回に1回投稿されるように作ってます。
ためしに手動でやってみたら以下のエラーが出てきました;
【5分以内に受け取った@はないようです。
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /usr/local/www/htdocs/purinp/public_html/easybotter/reply_pattern_timeline.php on line 28】
もしかしたら私が変なとこを知らずにいじってしまったのかもしれません。
初歩的な質問ですみませんが、解決策を教えてくださると助かります。
よろしくお願いします。
>>264
そのエラーメッセージは英語です。
日本語訳してみてください。
すると何をすべきか分かります。
>>265
まず鯖がばれたから、セキュリティのため、いますぐディレクトリ名を変更して!
で、そのエラーメッセージですが英語です。
reply_pattern_timeline.php の28行目で、) ; , のいずれかの過不足がある、と書いてあります。
>>267
わわ、ごめんなさい!ウッカリしすぎてました。
すぐ変更しました、ありがとうございます。
28行目ですね、ちょっと確認してきます。
何度もすみません、>>265 です。
確認したところ、問題の部分で,が抜けていたところがありました。
そこを直したところエラーが出なくなったので多分このせいだったのでしょう。
小さな見落としでとんでもないことが起こるんですね。
勉強になりました、ありがとうございました!
【バージョン】Easybotter 2.04bata
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE
【手動】 動く
【不明点など】
通常postは20分毎にしたいのですが、リプライ返しは2分毎にしたいのです。
こういう場合はどういう設定にするのがいいのでしょうか。
色々試行錯誤してみたのですがわからず…。
>>270
bot.phpのなかに書いてある説明は読みましたか?
>>271
//bot.phpを実行したときに、0分、15分、30分、45分だったら実行される
これを使えばいいんでしょうか?
自己解決しました。ありがとうございました。
@pages とGAEは相性が悪いんですか?
手動ではなんとか動くようですが、自動だとどうもうまくいかないようで。
手動でやっていると、何回かエラーが出てしまいます。
>>259 さんのようなエラーが出たり(更新したら出なくなりましたが)
TL上の単語を拾った際エラーが出たのか、@(拾い元)Array と投稿されてしまったり…
cronの実行する間隔をぽちぽちいじりすぎてしまってるのもいけないのかもしれません。
しばらく様子を見てみます。チラ裏ごめんなさい。
>>274
良いか悪いかで言えば悪いでしょう
無料サービス×無料サービスという時点でサービスの保証は無いも同然ですから
安かろう悪かろうです
>>266
ご助言ありがとうございます。
英語苦手なんですが…
tokenを再度入力したらbotが無事動き出しました。
Twitterに投稿がはじまって感じるのは「重複投稿ブロック」の存在。
フォローしてくれた人にお礼を送るようなbotを考えたいのですが
同じメッセージは24時間は投稿できないとなると…
素人考えですが、送るメッセージに、
相手の方のアカウント名を自動で入れて投稿するような仕組みを作ることで、
ブロックにかからなくなるのでは?と思ったのですが
そんな簡単な話ではないのでしょうか?
もし、それが可能だとしたら、こちらで提供いただいたファイルに何らかの命令文を書き込むことで
可能になるのでしょうか?
>>276
>>182
>>276
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259657502/98
あと>>161 ちゃんと読んだかな?
data.txt上で、行を読み込むごとに連投し、特定の記号を見つけたらやめる
(次に呼ばれた時は、その次の行から投稿を始める)という動作は
設定できるでしょうか
文字どおりプログラミングができないのですが、よろしければ
教えてください。
>>279
できるできないといわれればできます 可能です
>(次に呼ばれた時は、その次の行から投稿を始める)
しかしながらこのように次に呼ばれた時も考えるのであれば
一時的にどこまで呼ばれたのかということを保持せねばなりません
この辺をどうするかですね
>>279
>>161 読んでお勉強しましょう
どうしたらできる?ではなく、ある程度自分で試行錯誤してから質問をドウゾ
改造は初心者スレの領域ではありません
>>278
ご丁寧なご指導に感謝いたします。
仰るとおりに、改造など考えずに、
初心者のままでいることにします。
やはり私には難しいです いろんな意味で。
失礼しました。
お世話になっております
【バージョン】Easybotter 2.04bata
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE
【手動】 動かない
【不明点など】
object(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(19) "Incorrect signature"
}
のエラーが表示されたり、postに成功しても
:—*‘z‚³‚ñ½‚¢‚Ȃ¨Žo‚³‚ñµ‚©‚Á½‚ȁB
のような文字化けしたような文字列がpostされてしまいます。
settingに問題があるのでは、というレスを拝見したので何度も直したのですが、一向に改善しません。
他には何か原因はあるのでしょうか?
>>283
twitterでOAuthの設定BrowserからClientにした?
皆さんお疲れ様です。
凄く初歩的な質問なのですが、お答え頂けるとありがたいです。
【バージョン】2.03
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE
【手動】 動く
【不明点など】 通常ポストは問題ないがリプライができない。
@で話しかけたとき、リプライを返してくれはするのですが
どれもreply_pattern.phpで設定した返事ではなく、data.txtからのランダムな文章のリプライになってしまいます…
bot.phpは
//$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(2,"data.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");
と設定しています。
reply_pattern.phpの中身は
<?php
$data = array(
"テスト"=> array(
"返信A",
"返信B",
),
);
としています。
テスト と話しかけた後、手動でbot.phpを叩くと
@●●_bot 通常発言内容1 http://twitter.com/ ●●_bot/status/*********
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in *********/EasyBotter.php on line 237
@●●_bot @○○ 通常発言内容2 http://twitter.com/ ●●_bot/status/*********
とエラーがでています。
EasyBotter.php自体は触っていません。(文字コードはUTF-8、改行コードはLFに設定しました)
よろしくお願い致します。
>>285
2.04を使用して下さい
>>286
すみません…仰るとおり、改めて2.04をDLし実行したらできました。
ありがとうございます!
>>284
Clientにしてあります。
どうやら文字コードがいつの間にか違うものになってたのが原因のようでした;
ありがとうございました。
いつもお世話になっています。
原因不明で困っています。
【バージョン】Easybotter 2.04bata
【設置鯖名】 さくら
【PHPのバージョン】PHP-5.2.12
【実行】 さくらcron
【手動】 動かない、文字化けする
【不明点など】
急に定期ポストだけ反映されなくなり困っています。
また、たまに反映されても文字化けしてしまいます。
bot.phpに直接アクセスしてみたところ
object(SimpleXMLElement)#9 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(19) "Incorrect signature"
}
このようなエラーが出ました。OAuthの設定はClientになっています。
リプライは問題なく返すのですが定期ポストだけができません。
定期ポストはテキストファイルで作成しています。
>>290 です
日本語がおかしくてすみません。
定期ポストはメモ帳で作っています。
メモ帳ってwindows付属のですか?
それじゃあ文字コードを保存できません
文字コード保存まで出来るテキストエディタを使用してください
TeraPadなど
お世話になってます
【バージョン】Easybotter 2.04bata
【設置鯖名】 さくら
【PHPのバージョン】PHP-5.2.12
【実行】 さくらcron
【手動】 動かない
【不明点など】
定期postはぽつぽつ呟いているのですが
(時々規制でもなく呟かなくなったりしているみたいですが…)
リプライにたいしてまったく反応を示しません。
某ジェネレータからPHP移行したいのですが
リプライに反応しないのでこれでは移行するにできません…。
何が原因なのでしょうか?教えて頂けないでしょうか…!
>>293
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1260351215/r88
リプライの間隔を短くしてませんか?
2分毎や5分毎で動いていると言う人も居ますが
基本的にcron設定のページにある注意事項に書いてある
・メモリやCPUに著しく負荷をかける処理は他のお客様にご迷惑がかかりますのでおやめください。 サーバ運用に支障をきたす場合はやむを得ない場合には、予告無く設定解除、機能制限することがあります。
・実行頻度が1時間以内に連続する場合や、CPU処理時間が60秒以上連続で利用される場合、予告なく設定解除される場合があります。
と、あるようにさくら側が強制的に止めてしまいます。
最短を一時間毎にするのが好ましいですね。
2分や5分でも動いているという方もいらっしゃいますが
共有鯖なので、他のユーザーに迷惑かけないように使いたいですね
>>294 さん
わざわざありがとうございます。
設定を変えたらどうにか動くようになりました。
周囲のことを気にかけず動いてしまい申し訳ないです、以後気を付けます。
お手数をおかけしました…ありがとうございました。
お世話になります。
【バージョン】Easybotter 2.04bata
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE
【手動】 動く
【不明点など】ランダムポストは問題なく動くのですがリプライがうまく行きません。
ただ、アップロードした直後はリプライするのですがもう一度試すとリプライされません。
bot.phpにアクセスするとエラーも出ず、真っ白な画面です。
txtとreply_pattern.phpとlog.datのパーミッションも666、644、606と試してみましたが変化がありません。
何が原因なのか教えていただけると嬉しいです・・・
>>280
>>281
返信ありがとうございます。「data.txtを連投し、特定の記号を見つけたら
連投をやめる」の件、プログラミングは初めてなのですが
週末、PHPの本を買って勉強してみました
1 よく見たら、bot.phpにて第二変数を使うと止まるように、最初から
できているようなので、それを利用してpostRotation("data.txt","#")とし、
これを区切り記号とする
2 このままだと#が来た時にdata.txtが変更されないまま終わって
しまい、次に呼ばれた時にいきなり「#」になってしまうので、
この2回目のelse文の中でrotateData()を実行
ここまでは、思ったとおりに動きました。ところが
3 これが呼び出されるEasyBotter.phpの postRotation()の中身全体を
while(True)で囲み、「#が来るまでの連続投稿」のため中ほどのreturnを
コメントアウト
これだと、最初の一つが投稿されるだけで、data.txtが際限なく
ぐるぐる回ってしまうようなのです。非常に低レベルな質問だと思いますが、
アドバイスいただけますか
>>297
EasyBotter.php の改造ネタは初心者スレでやるべきではありません。
こちらにどうぞ。
スレ立てるほどじゃないその他の質問スレ
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259689986/
>>296
情報がもう少し欲しいところなのですが、考えられることは
・返信するパターンが1つしかないので重複規制にかかった
・先週・今週の土日、@pagesもGAEもtwitterも不具合多発で
時間取得がうまくいかず、発言を時間内に拾えなかった
等、考えられます。ウチもこの土日、同様の症状が出たことがあります。
txtとreply_pattern.phpとlog.datのパーミッションも666にしてますよ
もしこの土日でなったのでしたら、今日あたりにもう一度試して
それでもまだ不具合が出るのでしたら、別の設定ミスだと思うので
また書き込んでください
質問です。
現在30分に一回定期ポストをするように設定しているのですが
一時間に一回にするには構文をどのようにしたらいいのでしょうか?
if(date("i") % 30 === 0){
$response = $eb->postRotation("post.txt");
}
現在は上記のように指定していますが
一行目を「if( date("G") % 1 === 0)」に変更で合っているでしょうか?
初心者丸出しの質問ですみません。どなたかお答えいただけると助かります。
>>300
1時間1回で毎時0分に投稿するのであれば
if(date("i") == 0){
$response = $eb->postRotation("post.txt");
}
これで十分だと思う。
>>300 は>>161 をよく読むこと
>>301 は解答を教えないこと、教えるなら原理・解法を教えようよ
>>299 お早い返信ありがとうございました。
今試してみたところ問題なく動作しました。
返信するパターンは20種類ほど用意していたので、やっぱり原因は@pages、GAE、twitterの不具合だったのかと思います。
Google App Engineを使う予定で、
http://d.hatena.ne.jp/furyu-tei/20100115/gaeregister
こちらの解説サイトを見ながら設定を進めていたのですが
Python 2.5.xをダウンロード・インストールの項目で詰まりました。
http://www.python.org/download/releases/
ここからPython 2.5.x系を落とすみたいですが、Python 2.5.xが見つかりません。
何となく名前が似てるPython 2.5.5 (January 31, 2010)を落としてみたりしたのですが
拡張子がTARと言うよく分からないファイルが一つダウンロード出来ただけです。
インストールすると言う事らしいのでソフトで解凍して中も見てみましたが、インストーラーも見当たりません。
Python 2.5.x系とは一体何を指しているのですか?
上記サイトで一体何をダウンロードしたらいいのですか?
インストールの方法もさっぱりでお手上げ状態です。
>>304
http://sourceforge.jp/magazine/10/02/01/0358237
http://www.python.jp/Zope/download/pythoncore
2.5.2ならここに置いてある
>>305
ありがとうございます、おかげで無事設定できました。
しかし新しい問題が出てきてまた詰まりました。
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】動く
【不明点など】
http://d.hatena.ne.jp/furyu-tei/20100115/gaecronclub
こちらの解説サイトを参考に、cronの設定をページ最後の部分まで終えたのですが
ランダム発言やリプライ返しなど、botが喋ってくれません。
手動なら通常の発言や@に返信もしてくれるのですが、自動発言が全く出来ません。
質問です。
「試しにbotを動かしてみる」の部分で下記の表示が出て、
投稿に失敗しましたと出ます。
object(SimpleXMLElement)#5 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(19) "Incorrect signature"
}
どこを修正したら解消するのかわからず困っております。
読み取れる方がいらっしゃいましたら、ご助言くださいませ。
>>307
まずは>>161
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】動く
【不明点など】ランダムポストが動きません。
リプライを返したりTL上の特定の言葉に反応したりフォロー返しと言った機能は問題なく動くのですが、ランダムのみ機能しないといった状況です。
bot.phpファイルの中はこんな感じです。
――――
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
//=============================
//botの動作をここに書いてください
//先頭に//がある行はコメント扱いなので実行しません。実行したい行の頭の//を削除してください。
//=============================
$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->replyTimeline(2,"reply_pattern.php");
/*
//===================================================
//EasyBotter2.03 2010/02/11更新
//===================================================
////ここから下はphaによる解説です。
////cronなどでこのbot.phpを実行するわけですが、動作の指定の仕方はこんな感じです。
//用意したデータをランダムにポストしたい
//$response = $eb->postRandom("data.txt");
//用意したデータを順番にポストしたい
//$response = $eb->postRotation("データを書き込んだファイル名");
//@で話しかけられたときにリプライしたい
//$response = $eb->reply(2, "data.txt", "reply_pattern.php");
//タイムラインの単語に反応してリプライしたい
//$response = $eb->replyTimeline(2,"reply_pattern.php");
//自動でフォロー返ししたい
//$response = $eb->autoFollow();
//===================================================
//// cronを実行するたびに毎回実行するのではなく、
//// 実行する頻度を変えたい場合の例は以下のとおりです。
//// PHPのdata()の応用の仕方は以下のURLを参照ください。
//// http://php.net/manual/ja/function.date.php
//bot.phpを実行したときに毎回実行される
$response = $eb->postRandom("data.txt");
//bot.phpを実行したときに、5回に1回ランダムに実行される
//if(rand(0,4) === 0){
// $response = $eb->postRandom("data.txt");
//}
//bot.phpを実行したときに、0分、15分、30分、45分だったら実行される
//if(date("i") % 15 === 0){
// $response = $eb->postRandom("data.txt");
//}
//bot.phpを実行したときに、午前だったらgozen.txtのデータを、午後だったらgogo.txtのデータを使う
//if(date("G") < 12){
// $response = $eb->postRandom("gozen.txt");
//}else{
// $response = $eb->postRandom("gogo.txt");
//}
//bot.phpを実行したときに、2月14日のみvalentine.txtのデータを、それ以外はdata.txtのデータを使う
//if(date("n") == 2 && data("j") == 14){
// $response = $eb->postRandom("valentine.txt");
//}else{
// $response = $eb->postRandom("data.txt");
//}
//準備したテキストを順番にポストしていって、準備した中から「めでたしめでたし」が投稿されたらbotの投稿をそこで止める
//$response = $eb->postRotation("data.txt","めでたしめでたし");
//*/
?>
――――
どこか問題があるんでしょうか?
>>308 さん
早速のご返答有難うございます。すみませんでした、もうしばらく調べてみます。有り難うございました。
>>306
まずは以下のスレを見て、考えられる対処を。
Twitterbotのcronスレ
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1260351215/
>>309
・postRandom() 以外の機能は動いています。
・EasyBotter.php には現状深刻なバグはありません。
ここから導かれる可変要素はなんだと思いますか?
思うに、reply() の方も、100%機能していないのではないかと。
>>309
さらにヒント
ファイルがダブっているところがあるんですけど?
♪よーく見てみようー
>>312-313
すみません、あの後しばらく経ったらランダムで発言しだしました。
今は問題なく動いております。
コメントどうもでした。
【バージョン】Easybotter 2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】GAE-Cron
【手動】動く
【不明点など】
リプライを返すまでに時間をかけないように1分おきにbot.phpを叩かせてるんですけど、同時に通常のポストも1分ごとに動作してしまうのです。
30分や1時間ごとに発言してくれるようにするには一体どこをどう弄ればいいんでしょうか?
>>315
>>161 を再確認で解決
>>315
またはこちらへ
EasyBotter 非公式wiki - livedoor Wiki(ウィキ)
http://wiki.livedoor.jp/easybotter_wiki/
全然BOT初挑戦なので四苦八苦しておりますが
何も分からず 最初は動いてたように感じたのですが
CRON設定で再度よく読み確認をしたら
$consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値
$consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値部分も変更しないといけない事に気づき変更をして再度BOTを動作したところ下記の様にメッセージがでてしまうのですが
Twitterへの投稿に失敗しました。ユーザー名:@areacocoobject(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(19) "Incorrect signature"
}
2分以内に受け取った@はないようです。
同じような質問がレスにあるようでないみたいなので
どなたかご指南ください
hetemlサーバーでPHP5、Cronも一時間に1回は設定出来るので
それでBOT調整をしたいのですが 行き詰まってます
宜しくお願い申し上げます
バージョン】バージョン2.04beta
【設置鯖名】 hetemlサーバー
【PHPのバージョン】5.0
【実行】 hetemlサーバー/ブラウザ自動更新/手動/他
【手動】動かない
【不明点など】 上記記載
テンプレートあったので 追記
>>318
setting.php追記する必要があるのは
$screen_name = ""; //botのid名
$access_token = ""; // Access Tokenの値
$access_token_secret = ""; // Access Token Secretの値
だけです
Access Tokenはphaさんのサイトをよく読めばわかるはずです
初心者ならConsumer keyとかは変えなくていいです
ありがとうございございます。再度元に戻して行って見ます
先程 ご指摘を頂き変更し 以前の様にWebからの動作はうまくいってるように思うのですが
Cronがいまいちうまく動作がしてないようなのですが Cron自体はメールで
動作報告がくるのですが全てNGの通知です。やはりロリポップ系のサーバなので
いろいろレスを拝見してるのですが うまく動かないのですかね?
パーミッションもレス中他の物を666に設定したら動いたとあったので やってみたのですが
やはりNGのようなのですが あと1時間に1回しかCronが動かないというところで
プログラム上で修正をした方がいいと思われるところが御座いましたら ご指導頂きたくお願い申し上げます
>>322
なんでもかんでもここで聞けば何とかなると思わず
もっと自分で調べましょうよ。cronについては、こちらへ
お探しの答えはこちらにあります
Twitterbotのcronスレ
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1260351215/
■初心者の方へ■
質問前に、思いつく単語をこのスレ・関連スレで検索してください。
簡易FAQ:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259657570/168
非公式wiki:http://wiki.livedoor.jp/easybotter_wiki/
検索例)
リプライ:リプ、@、replyなどで検索
タイムライン:TL、タイムラインなどで検索
CRON:CRON、bot.phpなどで検索
二重投稿:二重投稿、if、bot.phpなどで検索
リプライと同時に他のポストをする:bot.php、if、同時などで検索
via〜変更:http://twitter.com/oauth_clients
スクリプト初体験の方は、PHPリファレンスで最低限の勉強をしましょう。
下記5項目がわかれば基本機能は使いこなすことができます。
・正規表現(メタ文字)
・演算子
・比較演算子
・条件分岐(if、switch)
・date関数
上記を調べたり勉強してもわからなければ下記テンプレを使って質問をしてください。
【バージョン】
【設置鯖名】 レン鯖名/自宅鯖
【PHPのバージョン】
【実行】 CRON鯖名/ブラウザ自動更新/手動/他
【手動】 動く/動かない
【不明点など】 (エラーメッセージがあればコピペ推奨)
すみません、Easybotter 2.03betaを利用させていただこうと思い、
ファイルをダウンロードし、編集しました。
その後「用意したサーバーにファイルをアップロードしてください。」
とあるのですが、どのファイルをアップすればよいでしょうか。
PEARというフォルダに入ったファイルも全て階層を合わせフォルダを作り、アップすればいいのでしょうか。
>>325
公式ページをご覧になっても分かりませんでしたか?
では1つ前のレス(>>324 )にあるwikiに書いてあります。
>>326
ありがとうございます。
無事アップできましたが、画面が真っ白になってしまいます。
・アップしたら真っ白になるだけ
エンコードUTF-8(TeraPadはUTF-8n)Bomなし 改行コードはLFになってるか
data.txtとreply_pattern.phpとlog.datのパーミッションが666になってるか(サーバーによって違う場合もあり)
setting.phpで何か間違ってないか
については、UTF-8Bomなし、改行コードLF、パーミッション666、settingの
アカウント名とaccess_token、access_token_secretは設定できていると思います。
ただ、consumer_key、consumer_secretはどこにも情報が無いので、
ファイルをダウンロードした時のままにしています。
是が原因でしょうか?
>>327
324読んだ?
聞くまえに検索した?
EasyBotter2.0スレの>>65 と同様のエラーが同じレンタルサーバで起きました。
Fatal error: Call to undefined function hash_hmac() in /home/******/PEAR/HTTP/OAuth/Signature/HMAC/SHA1.php on line 57
検索・wiki共に有効な解決方法が無かったため質問させていただきます。
説明書通りにbotのOAuth設定や属性変更を行い、テストとしてbot.phpにアクセスしたところ上記のエラーが発生しました。
どなたか解決方法を知っている方、お教え頂けるとありがたいです。
>>329
http://php.s3.to/tt/aws.php
サーバーでhash許可してないんじゃない?
php設定変更出来るならhash使えるようにして、出来ないなら諦めるしかないかと
>>330
phpの設定ですか。試してみようと思います。
この辺りの使用可かどうかなどはサーバを借りる際にわからないのでしょうか……。サービスの概要などを見てもPHP 5.X.X等としか書かれていないので、確かめるのは借りた後になってしまいますよね。
wikiあたりに、そういったレンタルサーバの対応表などを作っても良い物でしょうか。
>>331
安易にサーバーリストをアップするのは同意しかねる
借りる前にメールでサーバーに問い合わせすればいいだけ
初心者を免罪符にして調べる努力しない人が多過ぎる
>>332
今は各有料レンタル鯖は試用期間を設けていますしね
無料鯖なら退会すればいいし
まぁその辺は…その為の試用期間だと…
同じ運営でも、配られたサーバーによって違ったりしますからねえ
板主の解説サイトの名前とかスレタイとか、ここの人らは忘れてるんじゃないかって思う
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板