したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

EasyBotter初心者質問スレ4

173名無しさん:2012/02/08(水) 13:21:18
【バージョン】Ver.2.05
【設置鯖名】 @page
【PHPのバージョン】
【手動】 動く
【実行】 GAE-cron
【実行間隔】 投稿テストのためcronを5分間隔に設定
【不明点】 手動で動くのにcronを使うと動かない
他にも2体ほどbotを動かしていますが、そちらは問題なく動いているので原因が分かりません。

ランダムポストだけ利用したいので$response = $eb->postRandom("data.txt"); のみ実行させています。
手動では問題なく動くのですが、cronを使っても投稿されません。
GAEのcron jobで確認したところ、cron自体は動いているようです。
cronで叩くURLを確認、パーミッションは@pageのFAQを見て、.datと.txtを604に変更(他のbotも同じパーミッションで動いています)
他に考えられる原因があれば教えて頂きたいです。

174名無しさん:2012/02/08(水) 20:03:34
>>173
取り合えずコード200出てない?

175名無しさん:2012/02/08(水) 21:48:42
>>174
コード200とは何でしょう?無知ですみません。
bot.phpを何度か手動で叩いてますが、投稿されましたの文章のみで、エラーは表示されません。

176名無しさん:2012/02/08(水) 23:16:00
>>175
HTTPステータスコード 200
→要するにちゃんと行使されました
コード200以外だとちゃんと実行されていない

177名無しさん:2012/02/09(木) 00:01:08
>>176
ありがとうございます。
そのコードはどこで確認できるのでしょうか?
200が返ってくるとか500(?)が返ってくるという言葉は検索で見つけましたが、どこで確認すればいいのかは分かりませんでした。

178名無しさん:2012/02/09(木) 00:17:06
>>173-177です。
http://neoinspire.net/status_check/
こちらのチェッカーを使ってステータスコードを確認したところ、取得結果は200でした。となると、原因はcronの方でしょうか?

179名無しさん:2012/02/09(木) 01:42:50
>>178
他のは問題なく動いてて、かつcronの問題じゃなさそうとなると…
確認してるみたいだけどcronで叩くURLがやっぱり間違ってるか、タイムアウトしてるか…
あとは基本的なこととして投稿するツイートはたくさん用意してる?

180名無しさん:2012/02/09(木) 03:18:06
>>178
URLはコピぺで何度か入れ直してみていますが、恐らく間違ってはいないと思います。
タイムアウトとは具体的にどういった現象なのでしょう?言葉はよく見かけるのですが、いまいちピンとこなくて…
投稿ツイートは50パターン程入れていますし、もちろん重複しているものはありません。
@pageさんとGAEは相性が悪いというような話を耳にしたのですが、その辺りも何か関係するのでしょうか?

181名無しさん:2012/02/09(木) 13:04:20
すみません分らないので教えてください…
@pagesさんで作業してるのんですがある程度呟いてもらう言葉を入力してアップロードしてbot.phpに手動でアクセスしてみたんですが、HTTP500エラーが出てしまって困ってます。原因、どなたか分りませんか?

182名無しさん:2012/02/09(木) 14:35:26
>>180
ちょっと気になるので横入りするけど
>>174の言ってるコード200って、自分でサーバにアップしたファイルについてじゃなくて
GAE-cronの実行結果じゃないの?
わざわざ他所で確認しなくても、GAE-cron設定画面の
呼び出しURL、周期、の下の■最終起動の結果のとこにある数字でわかると思うんだけど

そこを確認して言ってるならスルーしてください

183名無しさん:2012/02/09(木) 17:05:07
>>181
500エラーでスレ検索してみて

184名無しさん:2012/02/09(木) 17:28:44
【バージョン】 Ver.2.05
【設置鯖名】 @pages
【PHPのバージョン】
【手動】 動く
【実行】 不明
【実行間隔】 一日間隔
【不明点】 自分で設置したbotがなぜ実行されているのか

cronの設置がよく分からず放置してたbotがありまして、
あらためて最近見たところ一日ごとにツイートが投稿されていました。

自分の記憶では定期実行できず、手動でbot.phpを叩いて投稿していました。
なのになぜ定期的な投稿が出来ているのでしょうか?
しかも最近一ヶ月ほどは投稿した覚えがありません。

携帯を登録してないのでGAE Cronは使ってません。
cron-job.orgも使っていません
Windowsのタスクにも登録はなく、どうもよく分かりません。
これはウェブクローラがbot.phpを叩いてるとみて良いのでしょうか?

アクセス解析も考えましたが、phpファイルへのアクセスが記録されるのかよく
分からずできていません。

わかりにくい内容ですみませんが、どなたかよろしくお願いします。

185名無しさん:2012/02/09(木) 19:25:12
バージョン】 Ver.2.5
【設置鯖名】
【PHPのバージョン】
【手動】 動く/動かない
【実行】 CRON鯖名/ブラウザ自動更新/手動/他
【実行間隔】 ●分間隔(CRON等で定期的に実行している場合)
【不明点】 (エラーメッセージがあればコピペ推奨)

186名無しさん:2012/02/09(木) 19:31:42
【バージョン】 Ver.2.5
【設置鯖名】 xrea
【PHPのバージョン】
【手動】 動く

上記誤投稿すいません
ランダムにポストするbotで任意のフォロワーさんの名前を
表示するようにしたいのですが、{follower_name}で表記すると
表示されず、{name}で表記するとbot名が表示されてしまいます。
どのように記述すれば、ちゃんと機能してくれるのでしょうか

187186:2012/02/09(木) 20:05:32
何度もすいません
なんどか手動で試したところ
{follower_name}で動くっぽいです
お騒がせしました

188名無しさん:2012/02/09(木) 21:19:17
>>182
2012-02-09 04:09:38.292 /cronの名前 200 11ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
と表示されているところのことでしょうか?
cronの実行結果は全てこのように表示されています。エラー表示はありません。
cronjobで確認してもon time Successとなっているので実行されているのかとは思うのですが…。

189名無しさん:2012/02/10(金) 00:12:32
>>184
とりあえずbot.phpのファイル名変更を推奨

190名無しさん:2012/02/10(金) 01:03:45
GAEはどうもfetchしたURLの中身をキャッシュするらしく、それではデプロイしてからしばらく経つとphpを動かしてくれなくなります。風柳さんのGAE_cronじゃないならこの辺は?
ttp://s-clair.com/relier/bot_log/gae-cron/
私も@paegsの頃自分でデプロイしたcronだと2日くらいで動かなくなってしまうので風柳さんのGAE_cron使ってみたら無事動くようになったよ
ちなみにロリポは自分のcronでも動いたんだよね

191名無しさん:2012/02/10(金) 16:14:12
「フォロー返しのついでにリプライする」ではなく
「フォローは返さないがリプライだけする」は可能でしょうか?
前者で利用しているAPIだけでは不可能で、
SQLを使わないと実現できないように思えたのですが。。。。
よろしくお願いします。

192名無しさん:2012/02/10(金) 17:50:48
>>166
163です
改造が必要なんですね。。
再度質問しなおします、ありがとうございます。

193名無しさん:2012/02/10(金) 20:47:31
【バージョン】 Ver.2.05
【設置鯖名】 @pages
【PHPのバージョン】
【手動】 動く
【実行】 GAE-Cron
【実行間隔】 3分間隔
【不明点】 Botへのリプライにのみ反応させたいのですが、リプライパターンにある語句がTL中にある場合、勝手にTLに反応してしまいます。
TLには反応させたくないのですが、どうしたらTLに勝手に反応しないようになるでしょうか。

bot.phpは以下のみ有効にしました。
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(3,"","reply_pattern.php");

また、TLリプライを空白にすれば直ると思い、
$response = $eb->replyTimeline(3,"");
に変更し、有効にした所、APIアドレスの変更を除けば素の状態のEasyBotter.phpの416行目でエラーが発生しました。

194名無しさん:2012/02/11(土) 09:07:41
>>183 探し方が悪いのか…検索してみても表示されないんですけど。

195名無しさん:2012/02/11(土) 10:57:12
>194
500で検索するとこのスレ内だけでも複数引っ掛かるんだが、君のPC大丈夫?
ググってみてもそれなりに答え拾えるし

言われたまま額面通りにしかできない人ならごめんね

196184:2012/02/11(土) 10:59:02
>>189
bet.phpに変更したところ投稿されなくなりました。
どうなってるんでしょうか。

197名無しさん:2012/02/11(土) 23:21:09
>>193
DLした時のbot.phpをよく読んでいますか?

エラーでもなんでもなく
TL反応を実行した時に返信用ファイルが見つからない時はreply_pattern.phpから返信するようになっている
だから
$response = $eb->replyTimeline(3,"");
とやってもTL反応は実行できてしまいます

つまり、TL反応させないためには
・コメントアウトする
・記述しない
の2パターンがあるわけですね

そして、「コメントアウトする」件についてはbot.phpとEB公式で書いてある

198名無しさん:2012/02/11(土) 23:23:43
>>196
どうなってるもこうなってるも
bot.phpのURLがバレたからURL表示してる何者かがいただけだよ
その何者かってのは人間かクローラーなんかのプログラムかは知らん

bet.phpもバレればまたURL表示する何者かが出現可能性はある
心配なら実行ファイル自体をWEBから削除するのが一番安全だ

199184:2012/02/11(土) 23:48:15
>>198
ということはbotの投稿間隔は制御しきれないという事ですか?
とりあえずもう一度放置して様子を見てみます。ありがとうございました。

200名無しさん:2012/02/12(日) 22:29:39
【バージョン】Easybotter 2.05beta
【設置鯖名】@pages
【PHPのバージョン】5
【実行】手動
【手動】 動かない
ファイルをアップロードし、bot.phpを開いても真っ白になるだけでなにも表示されません。この質問はかなり既出なのですがみなさん自己解決かミスを指摘されて動作が出来るようになっています。しかしそのミスをしていない場合どうして真っ白になってしまうのかまだ分かりません。
○エンコードUTF-8(TeraPadはUTF-8N)BOMなし、改行コードはLFになっています
○data.txtとreply_pattern.phpとlog.datのパーミッションが666になっています(@pagesは666⇒600との指定ということなので今は600にしています。666でも真っ白なのは変わりませんでした)
○setting.phpで何か間違ってないか⇒ないと思います
bot.phpの$response = $eb->autoFollow();の部分だけ//を外してみたり、他の場所一か所だけ//を外してみたりしていますが、全く反応してくれません。
○@pagesの自分のページらしきところにアップロードしたものがファイル形式で表示されており、そこのbot.phpを確認すればいいんですよね?
○data.tetは600にしなければ表示されます

何か解決がありましたらよろしくお願いします

201名無しさん:2012/02/13(月) 01:14:39
>>200
FTPは?

202名無しさん:2012/02/13(月) 02:45:59
>>200
取り合えずうp後のファイルをチェック。チェックするのはdata.txtなどツイートするファイル。
●Character encoding:のところがちゃんとUTF-8、LFになってるか否か。なってなければそれに変更する。
 @pagesのFTPであげた場合は必ずチェック。他のFTPであげた場合でもチェックしておいたほうが無難。
●パーミッションは@pagesでも666でいい。666にしてはいけないものはEasyBotter.php、bot.php、setting.phpのみ。それ以外は666でおk。

203名無しさん:2012/02/14(火) 14:40:14
回答ありがとうございます。無事手動でbotを動かせました。
TeraPadで編集したものをアップロードしたつもりだったのですが、どうやら編集前のものがアップロードされていたみたいでした…すみません。Zipをそのままアップロードすると解凍はされるけれど、それは編集前のものなんですね…
>>202 パーミッションは666でいいんですか〜ありがとうございます。製作者さんが666指定なのでそっちにしておきますね

204名無しさん:2012/02/16(木) 22:14:15
>>173です。
ttp://s-clair.com/relier/bot_log/gae-cron/こちらを参考にcronを設定したところ、botが動くようになりました。
ありがとうございます。
>>190さんの言うようにキャッシュが原因だったのかどうかはイマイチわかりませんが…。

ところで、最初に作ったbotはttp://d.hatena.ne.jp/twibotbot/20091211/1260500313 の手順で設定していたのですが、こちらだとcashコントロールの記述はありませんよね?
こちらにその記述を加えることはできますか?
また、どのように入れればいいかも教えて頂きたいです。

205名無しさん:2012/02/17(金) 00:12:07
reply_pattern.phpが大きすぎる(2000行弱)ため、
読み込み時間がかかりすぎてエラーになってしまいます。

返信文を条件毎にそれぞれ別々のtxtファイルとして分割し、
reply_pattern.phpで条件によって必要なtxtだけを参照するようにできれば
ロード時間を短縮できそうだと思うのですが、そのようなことは可能でしょうか?

206名無しさん:2012/02/17(金) 17:08:28
>>205
本当にタイムアウトなのか、まずは調べた方が良い

で、可能といえば可能だけど改造がわりと大変
初心者のうちはまずやめとけ
(以前スクリプト公開してるとこがあったが、閉鎖したようだ)

むしろ2000行程度でヘタるサーバーを変えた方が後々の為には良い
フォロワー5000以上、リプ返信もTL反応多く、返信用のファイル2MBを軽く超えでも30秒以上かからず動いてるわ

207名無しさん:2012/02/20(月) 02:04:22
【バージョン】 Ver.2.05
【設置鯖名】 @PAGES
【PHPのバージョン】
【手動】 動く
【実行】 GAE-cron
【実行間隔】 通常60分、リプライ4分
【不明点】
不明点というか、ディレクトリ直下に置いた方がいいというような話をよく聞くんですけど、ディレクトリ直下ってどこなんでしょう?
今稼働してるbotは最初のページに『bot』というフォルダを置いて、その中にEasyBotterの中身を全部入れて動かしてます。
問題なく動くんですけど、フォルダ置く場所が間違っているなら変えようと思いまして・・・

それから、2体目を作る時は、1体目とは別に@PAGESでアカウントを取得しないといけませんか?

208名無しさん:2012/02/20(月) 03:01:39
>>207
例えば@pagesならこう↓
ttp://www**.atpages.jp/ユーザー名/
ちなみに今動いてるなら別に問題ないし、動かす必要もない。

2体目も『bot』というフォルダの中に入れていい。
アカウント取るのは容量を超えそうになる場合だけど、
まず「普通」はそんな大容量すぎるBOTなんかないから取る必要なし。

209名無しさん:2012/02/20(月) 03:57:08
>>ありがとうございます。勉強になりました!

210名無しさん:2012/02/22(水) 03:26:55
2.0を使ってます。
特定の単語に反応しないように設定する事は[[END]]を用いてできたのですが、
「.com」や「.jp」などURLを含むツイートに反応しないようにしたいのにうまくいきません。
「.com」を含むツイートを除外したい場合
$data = array(
"\.com"=> array( "[[END]]",),);
ではだめなのですか?
どうすればURL(短縮含む)を除外できるか教えてください。お願いします。

211名無しさん:2012/02/22(水) 17:10:18
>>210
つ【メタ文字】

ついでに言うと「http」か「ttp」の方が良いよ

212名無しさん:2012/02/22(水) 18:03:22
>>211
「.」がメタ文字ってことですよね?
"\.com"としてバックスラッシュでエスケープしてるんですが、それじゃだめなんですか?
それ以上わからないのですが・・・

短縮URLだとttpが表示されないのでドメインで指定したいんです

213名無しさん:2012/02/22(水) 22:11:37
【バージョン】 Ver.2.0x
【設置鯖名】 @pages
【PHPのバージョン】
【実行】 GAE-CRON
【実行間隔】 2分間隔
【不明点】
一定の時間帯だけ違うリプライをするようにしようと思い、
下のようにbot.phpを書き換えたのですが、全て通常のリプライで返ってきてしまいます。原因はどこなんでしょうか…

<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();

if(date("G") > 3 && date("G") < 8){
$response = $eb->reply(2,"soutyou.php");
} else if(date("G") > 17 || date("G") < 3){
$response = $eb->reply(2,"night.php");
} else {
$response = $eb->reply(2,"reply_pattern.php");
}

//1~7時の間はPOSTしない
if(date("G") > 0 && date("G") < 8){
$response = $eb->postRandom("");
}
?>

214名無しさん:2012/02/23(木) 14:55:39
>>213
頻出過ぎて説明が面倒なんで過去ログで>>143-145

3時台と8時〜17時台はreply_pattern.phpから返信する、とご自分で指定してらっしゃるようですが…はて?

215名無しさん:2012/02/24(金) 02:44:36
>>210
なんとか自己解決しました。
お邪魔しました。

216名無しさん:2012/02/24(金) 20:50:46
【バージョン】Ver.2.0x
【設置鯖名】 さくらネット
【PHPのバージョン】5
【手動】 動く/動かない
【実行】 CRON鯖名/ブラウザ自動更新/手動/他
【実行間隔】 15分

php自体初心者です。
御聞きしたい事がAさんが「おはよう」とつぶやいたらBotが自動で「Aさんおはよう」の様にフォロワーのつぶやきに反応して返信する方法ってどうやるのですか?

217名無しさん:2012/02/24(金) 20:59:40
>>1の公式ページでVer.2.0基本の設定をひと通り読むといいと思う 非公式wikiも便利

218名無しさん:2012/02/26(日) 20:03:18
はじめまして

botが@返信に反応するかどうかのところなんですが、
反応はするのですが、 reply_patternに書き込まれたものでなく
dataの中からランダムに反応して返信してきているみたいです・・・。
bot.phpの設定は間違っていないと思うのですが…。
良かったらアドバイスお願いできませんか?

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");

になってます。

219名無しさん:2012/02/27(月) 11:12:59
>>218
reply_pattern.phpの書き方とコード関係を確認
@pagesのファイルマネジャー使ってたらFTP使え

220名無しさん:2012/02/29(水) 01:31:54
初めまして。
リプライに{tweet}を使いたいのですが使えません。
EasyBotter.phpは最新APIに変える以外は何も弄っていません。

【bot.phpの内容】
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->postRandom("data.txt");
$response = $eb->reply(2,"","reply_pattern.php");
$response = $eb->autoFollow();
$response = $eb->replyTimeline(2,"tl_pattern.php");
?>


reply_pattern.phpに、試しに

"おうむがえし"=> array(
"{tweet}",
),

と記述し、botあてに「おうむがえし云々〜」とリプライを送ったのですが、
botからは空リプライしか返ってきません。
どうやったらリプライに{tweet}を使えるようになりますか?

221220:2012/02/29(水) 01:54:21
>>220です。自己解決しました。
もしかしたら私と同じことで躓いている方もいらっしゃるかもしれませんので、
解決方法を書かせていただきますね。

EasyBotter.php内の、

if(strpos($text,"{tweet}") !== FALSE && !empty($reply)){
$tweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply->status);
$text = str_replace("{tweet}",$tweet,$text);
}

の二行目にある「$reply->status」を「$reply->text」に書き換えます。
こうすることで、リプライに{tweet}が使えるようになります。

222名無しさん:2012/02/29(水) 17:46:52
自分だけでは思いつかなかったので助言頂けると幸いです。
botがある特定の言葉を呟いた数分後にもう一度呟かせたいのですが、どのように設定すればいいかわかりません。
例:
botA : こんばんは!
数分後
botA : 間違えた、おはよう!!
のように呟かせたいです。

TLに反応する、の設定で、違うbotがつぶやいたものを見てつぶやかせることはできるのですが、自分の呟きを見て再度つぶやくことはできませんでした。
何か方法があれば教えてください。

223名無しさん:2012/03/01(木) 00:36:48
【バージョン】Ver.2.0x
【設置鯖名】 @pages
【PHPのバージョン】5.5
【手動】 動く
【実行】 ブラウザ自動更新
【実行間隔】 2分間隔(CRON等で定期的に実行している場合)
【不明点】 何回も何回も見直したのですがどうしても分かりません。
不具合点は、下記にあるものなんですけれど、
朝と昼、夕方、夜、深夜に別れて別々にポストをさせるようにしてあるのですが、このときの深夜においてなぜかポストを30分と指定してあるのに、クーロンが定期的に動く2分おきにポストされるようになってしまうのです。
深夜だけなので、深夜のところを弄ればどうにかなるのだとは思いますがどうしても書き換えても2分おきにポストされてしまいます。
みなさんアドバイスください。


if(date("i") % 30 === 0){
if(date("i") % 30 == 0 && date("G") >= 5 && date("G") <= 12){
$response = $eb->postRandom("morning.txt");
}else if(date("i") % 30 == 0 && date("G") >= 12 && date("G") <= 16){
$response = $eb->postRandom("day.txt");
}else if(date("i") % 30 == 0 && date("G") >= 16 && date("G") <= 18){
$response = $eb->postRandom("after.txt");
}else if(date("i") % 30 == 0 && date("G") >= 18 || date("G") <= 1){
$response = $eb->postRandom("night.txt");
}else if(date("i") % 30 == 0){
$response = $eb->postRandom("midnight.txt");
}if(date("i") % 30 == 0 && date("n") == 3 && data("j") == 3){
$response = $eb->postRandom("hinamaturi.txt");
}

224名無しさん:2012/03/01(木) 13:00:05
【バージョン】Ver.2.05
【設置鯖名】 @pages
【PHPのバージョン】
【手動】 動く
【実行】 GAE-cron
【実行間隔】 2分間隔
【不明点】多重リプライをする

1つのツイートにつき2回返事をしてしまうことがたまにあります。
実行間隔は2分にしておきたいので、間隔を長めにとる以外で解決できる方法はありますか?

ちなみにこちらのサイトを参考にしてcronの設定をしました。
ttp://s-clair.com/relier/bot_log/gae-cron/
タイムアウトエラーに関する設定の辺りが怪しいかなとも思うのですが関係ありますか?

225222:2012/03/01(木) 15:04:19
スレチでした。すみません。

226名無しさん:2012/03/06(火) 17:35:58
>>223
if(date("i") % 30 === 0){
if(date("i") % 30 == 0 && date("G") >= 5 && date("G") <= 12){

↑この時点で既に…

227名無しさん:2012/03/07(水) 15:27:36
【バージョン】Ver.2.0x
【設置鯖名】 ロリポップ
【PHPのバージョン】5以上
【手動】 動く
【実行】 ブラウザ
【実行間隔】 10分間隔
【不明点】
反応ワードを含まないリプライを飛ばすと反応せず以下のエラーが出ます

Twitterへの投稿に失敗しました。
ユーザー名:@****
object(SimpleXMLElement)#10 (2) {
["error"]=>
string(22) "Status is a duplicate."
["request"]=>
string(22) "/1/statuses/update.xml"

重複しているとのことですが何がどう重複しているのかわかりません…
このエラーは文字化けする問題でWikiに該当がありましたが今回の問題は文字化けではありません
ちなみにbot.phpは
$response = $eb->postRandom("data.txt");
$response = $eb->reply(10,"data.txt","reply_pattern.php");
このようになっています
どこを間違ってしまっているのでしょうか
既出パターンだと思われますが過去スレをここ二日ほど探しているものの該当が見つけられません
お教えいただけると助かります

228227:2012/03/07(水) 15:46:20
すみません…自己解決しました

229名無しさん:2012/03/09(金) 03:27:23
【バージョン】 Ver.2.05
【設置鯖名】 @pages
【PHPのバージョン】
【EasyBotterの改造】改造していない
【手動】 動く
【実行】 GAE-cron
【実行間隔】 2分間隔
【不明点】 通常POST(30分毎)は問題なくするものの、リプライに全く反応しない。
念のためそれまでの呟きを全て消して、別のアカウントから@で話しかけても「2分以内に受け取った@はないようです。」としか出ない。

bot.php内は
<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.php","reply_pattern.php");
if(date("i") % 30 == 0){
$response = $eb->postRandom("data.php");
}
?>
としてある。
アップロードにはFFFTPを利用。

とりあえずこことwikiやその他検索して出てきた掲示板等を参考にしつつ以上のようにしてみたのですが、原因は全くわかりません。
心当たりもないのですが、もう一つ数か月前に作ったbotも最初はリプライにも反応していたのがいつの間にか自動POSTとTLの単語の反応のみになってしまっていました。
こちらはreply_pattern.phpとbot.phpの中身の書き換えが原因かと思うのですが、どこに問題があるのかわかっていません。
調べている途中で、@pagesだとリプライに反応しないと言う書き込みを見かけたのですが、サーバーの問題…と言う事はあるのでしょうか?
もし何か改善策等のお心当たりがあるようでしたら、助言していただけるとありがたいです。
よろしくお願いいたします。

230229:2012/03/09(金) 03:48:50
連続で申し訳ありませんが、追記です。
30分毎の自動POSTと同じタイミングでリプライを送ったら自動POSTもしなくなってしまったため、ただ今試験的に

if(date("i") % 30 == 0){
$response = $eb->postRandom("data.php");
}

から

//bot.phpを実行したときに毎回実行される
$response = $eb->postRandom("data.php");

に書き換えて手動で試していたところ、botにリプライしてから2分と数十秒は手動でもPOSTが出来ませんでした。

何故そうなるのか余計に分かりません……。
どなたかお分かりでしたら教えて頂けないでしょうか……。
お手数ですが、よろしくお願いいたします。

231名無しさん:2012/03/10(土) 01:34:29
【バージョン】 Ver.2.05
【設置鯖名】 ロリポップ
【PHPのバージョン】 5以上
【手動】 通常ツイートのみ動く
【実行】 ブラウザ
【実行間隔】通常ツイート30分間隔、リプライ 5分間隔
【不明点】
先ほどまでbotと会話をつなぐテストをしており、botはきちんとリプライを返していたのですが
突然botが私に向けてArrayと謎のツイートしたきり何の反応も示さなくなりました
このような現象は例にあるのかと調べたところ不明のままです
また、手動でやると、通常ツイートは問題ないのに、リプライは返しません
「●分以内に受け取った@はないようです」という表示もされなくなりました
通常ツイートとリプライはbot.phpとbot_re.phpというように分けていますが
今まで2、3日間不具合はありませんでした
どこに原因があるのかまったくわかりません
心当たりのある方いらっしゃいますでしょうか

232231:2012/03/10(土) 20:22:08
すみません、今日までいろいろ調べていたところ
reply_pattern.phpのどこかで入力ミスしていることがわかりました
自力で解決できそうです

233名無しさん:2012/03/13(火) 15:25:46
【バージョン】 Ver.2.0x
【設置鯖名】 atpages
【PHPのバージョン】
【手動】 動かない
【実行】 ブラウザ自動更新
【実行間隔】 2分間隔
【不明点】
Twitterへの投稿に失敗しました。
ユーザー名:@botのID(伏せています)

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(33) "Read-only application cannot POST"
["request"]=>
string(20) "/statuses/update.xml"
}

非公式wikiでの手順をやっていたらこうなりました、どこを直せばいいのか教えてくださいm(__)m

234名無しさん:2012/03/13(火) 15:33:15
>>233
Read-only application cannot POSTとはどういう意味かだな

235233:2012/03/13(火) 15:58:51
ちなにみOAuthはhttps://dev.twitter.com/を使っています。

236233:2012/03/13(火) 16:06:18
すいません、自己解決しました。
どうもありがとうございました

237名無しさん:2012/03/15(木) 21:28:44

【バージョン】 Ver.2.0x
【設置鯖名】 @page
【PHPのバージョン】2.05
【手動】 動かない
【実行】 CRON GAE
【実行間隔】 2分間隔(CRON等で定期的に実行している場合)
【不明点】

突然botがリプライに反応しなくなったことに気付き、
手動確認を行おうとしたところ、


「2分以内に受け取った@はないようです。」という表示が出ている。

試しにリプライを送る

手動でリロード

ロード後の画面は真っ白になる

繋がらなくなる

五分ほど時間をおいてからリロードすると「2分以内に受け取った@はないようです。」という表示が出ている。

というパターンが繰り返されます。
全てUPし直すなどの方法を取ってみたのですが、未だ解決できません。
何がエラーの原因となっているのか、可能性があるものを教えてくだささい。

238名無しさん:2012/03/15(木) 22:03:26
>>1->>3はちゃんと見て調べたり対策講じてみて、それでもわからなかったのかな?

以下>>3のコピペ

・アップしたら真っ白になるだけ/文字化けしてる
   エンコードUTF-8(TeraPadはUTF-8N)BOMなし、改行コードはLFになってるか
   data.txtとreply_pattern.phpとlog.datのパーミッションが666になってるか(サーバーによって違う場合もあり)
   setting.phpで何か間違ってないか

239名無しさん:2012/03/16(金) 08:31:39
>>238
お返事ありがとうございます。

・TeraPadはUTF-8N、改行コードはLF確認しました
・data.txtとreply_pattern.phpとlog.datのパーミッションはサーバーに合わせて606指定済みです
・setting.phpももう一度うpし直して試しました

以上のことを行ったのですが、リプライも定期ツイートまでもしなくなってしまいました。
予想されるエラーがあったらどうか教えてください。

240名無しさん:2012/03/16(金) 08:42:21
237,239の続きです。

・自動フォロー返し&フォローありがとうツイートは正常に行っている。
・手動リロードしてみたところ以下のものが表示される。

Twitterへの投稿に失敗しました。
ユーザー名:@なんとか_bot

object(SimpleXMLElement)#10 (2) {
["error"]=>
string(22) "Status is a duplicate."
["request"]=>
string(22) "/1/statuses/update.xml"
}
Twitterへの投稿に失敗しました。
ユーザー名:@なんとか_bot

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(22) "Status is a duplicate."
["request"]=>
string(22) "/1/statuses/update.xml"
}
2分以内に受け取った@はないようです。


これは調べてみたところ、ツイートが重複してしまうから送れないというエラーということがわかったのですが、
dataやreply用の言葉は50以上登録しています。

とりあえずもう一度teraPadの文字コードの確認や、パーミッションをeasybotter指定・サーバー指定のものに切り替えるなど試してみたいと思います。

241名無しさん:2012/03/16(金) 10:14:38
240の続きです。連投失礼いたします。
"Status is a duplicate."については、自動フォロー返し時のリプライ機能(easybotter.php)を外した所
表示が消えました。
リプライの不具合についてはまだ解決しておりません。アドバイス宜しくお願いいたします。

242名無しさん:2012/03/16(金) 16:02:50
>>241
頻出だが「サーバーアップ後」の改行コードと文字コードを調べてる?
アップ前の自分のパソコン内のファイル見ても仕方ないが

243名無しさん:2012/03/16(金) 19:37:15
>>242
FFFTPを使用しています。
再度サーバーアップ後の全てのファイルをtaraPadでUTF8N/LFの確認をしたところ、
log.datがダウンロード後開いてみるとShiftの文字コードになっており、
文字コードと改行コードを整えて上書き保存してみても、
開くと必ずshiftになっています。

これが原因かと考え、自分で調べてみたところ、
「真っ白で何も書いていないファイルはshiftで読まれることもある」といったことが
書かれたページが出てきたのですが…

やはりこのdatが異常なのでしょうか。
とりあえず他のエディタをダウンロードして、datを開き試してみます。

244名無しさん:2012/03/16(金) 20:50:02
237,239,240,241,243の者です。
datについてはphpエディタで確認したところ大丈夫だったので、
もう一度全て入れ直しました。
全て一から設定し直したところどうにか治りましたが、未だに何が原因だったのかわかっていません…

お騒がせいたしました。アドバイスありがとうございます。

245名無しさん:2012/03/25(日) 15:27:17
アドバイスお願いします。
【バージョン】 Ver.2.0
【設置鯖名】 @pages
【PHPのバージョン】5.2
【手動】 動かない
【実行】 GAEcron
【実行間隔】 2分間隔
【不明点】
先日まで問題なく動いていたのですが、自動フォローの機能をつけようと思いbot.phpとEasyBotter.phpを更新したところ、
自動フォローは出来ましたが何故かリプライだけができなくなってしまいました。
定期ポスト、TL反応は今まで通りできています。
bot.phpとEasyBotter.phpを前の状態に戻してみたのですが、変わりませんでした。
リプライを受け取った時に手動でbot.phpにアクセスしてみると、「ファイル作成に失敗\n」と表示されています。
以下bot.phpの中身です。

<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data2.txt","reply_pattern.php");
if(date("i") == 0){
$response = $eb->postRotation("data.txt");
}
$response = $eb->replyTimeline(2,"reply_pattern2.php");
?>

・エンコードはUTF-8、改行コードはLF
・data.txtとreply_pattern.phpとlog.datのパーミッションは666
・setting.phpは何度も確認しましたが間違っていないと思います

「ファイル作成に失敗\n」でぐぐってみたのですが、それらしい答えが見つからなかったので質問させて頂きます。
どの部分を誤るとこのような表示になるのでしょうか…?アドバイスよろしくおねがいします。

246名無しさん:2012/03/25(日) 19:37:42
初めまして、
完全初心者で初めてbot編集します。
bot編集でとても分からないのです。

【バージョン】2.05(botのバージョン?
【設置鯖名】 オロチサーバー
【PHPのバージョン】5.2.9 http://w12.oroti.net/~rent/search.php
【実行】 手動
【手動】 動かない
【不明点など】 ftp://w12.oroti.net/public_html/bot/frameabc/bot.php
(エラーメッセージがあればコピペ推奨)
<?php
//=============================
//EasyBotter繧貞他縺ウ蜃コ縺励∪縺・//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();

//=============================
//bot縺ョ蜍穂ス懊r縺薙%縺ォ譖ク縺・※縺上□縺輔>
//蜈磯�ュ縺ォ//縺後≠繧玖。後・繧ウ繝。繝ウ繝域桶縺・↑縺ョ縺ァ螳溯。後@縺セ縺帙s縲ょョ溯。後@縺溘>陦後・鬆ュ縺ョ//繧貞炎髯、縺励※縺上□縺輔>縲・//=============================
//$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");

文字化けがして動きません。
使用しているアップローダーはFFFTP1.97です。
@pagesのほうでやってみようかと思ったのですが、
おろちでできるならおろちでやろうと思いました。

文字コードなどはTeraPadであわせました。
666とかもあわせました。
セッティングphpもあわせました。

HTMLは分かるのですがphpは分かりません。

希望回答

①おろちサーバーでの作成は可能か。
②可能だとすれば改善点はどこか。
③不可能だとすれば@pagesで行う場合注意点はどこか。

助言などもいただけたらうれしいです。

247名無しさん:2012/03/26(月) 09:12:33
246です。
@pagesにしたら動きました;
無駄レス失礼しました;

248名無しさん:2012/03/27(火) 19:59:25
【バージョン】2.05
【設置鯖名】 @pages
【PHPのバージョン】
【実行】 gae-cron
【手動】 動く
【不明点など】
パーミッションについての説明を読み飛ばしてしまっていて今まで@pagesの説明書にあったパーミッション

『拡張子が .txt や .dat や .log などPHPで読み書きされるデータファイル ==> 606』

で動かしてたんですが、
666にした方がいいんでしょうか?
違いがよくわからないので教えて頂けると助かります。
ちなみに、bot自体はエラーも出さずに問題なく動いています

249名無しさん:2012/03/29(木) 20:35:32
>>220
助かりましたアリガトゴザイマス☆

250名無しさん:2012/03/31(土) 17:30:53
Unicodeの文字をdata.txtに入れたいんだけど
Unicodeで保存したらエラー出て呟けなかった

Unicode特有の文字を呟かせるにはどうすればよいでしょうか

251名無しさん:2012/03/31(土) 21:03:52
【バージョン】2.05
【設置鯖名】 @pages
【PHPのバージョン】5.2系
【実行】 gae-cron
【手動】 動く
【不明点など】時間分け構文を組んでも特定ファイルしか参照しない

 初歩的な事かもしれませんが、製作しているbotの時間わけ構文を
以下のように組んだのですが、data_12.txtだけを参照してしまい
他のファイルを参照してくれません。

if(date("G") > "5" && date("G") < "8"){
$response = $eb->postRandom("data_06.txt");
} else if(date("G") > "7" && date("G") < "11"){
$response = $eb->postRandom("data_07-08.txt");
} else if(date("G") > "10" && date("G") < "12"){
$response = $eb->postRandom("data_09-11.txt");
} else if(date("G") > "11" || date("G") < "13"){
$response = $eb->postRandom("data_12.txt");
} else if(date("G") > "12" || date("G") < "16"){
$response = $eb->postRandom("data_13-15.txt");
} else if(date("G") > "15" || date("G") < "18"){
$response = $eb->postRandom("data_16-17.txt");
} else if(date("G") > "17" || date("G") < "21"){
$response = $eb->postRandom("data_18-20.txt");
} else if(date("G") > "20" || date("G") < "1"){
$response = $eb->postRandom("data_21-00.txt");
} else {
$response = $eb->postRandom("sleeping.txt");
}

252名無しさん:2012/03/31(土) 21:10:28
>>251の者です。慌てて投稿した事に後で気づきました……。
皆さんのお力添えをお願いします。

253名無しさん:2012/04/01(日) 12:49:15
>>251
一行ずつ実際どの時間帯を指定してるのか見直してみたら?
&& と || の違いに気をつけながら日本語で。

> if(date("G") > "5" && date("G") < "8"){
> $response = $eb->postRandom("data_06.txt");

たとえばこの最初の部分は 5より大きく「かつ」8より小さい時間、つまり6時〜7時

> } else if(date("G") > "11" || date("G") < "13"){
> $response = $eb->postRandom("data_12.txt");

そしたら問題の部分は12時〜23時「または」0時〜12時、つまり0〜23時になってる

あと、それだけ細かく分けるなら、><で範囲指定するより==でそれぞれの時間を直接指定したほうが
わかりやすいと思う。

254名無しさん:2012/04/01(日) 21:47:35
>>253さん
 あれから色々と調べて回ったり非公式wikiの例文とにらめっこで手直ししていたところ、
ご指摘どおりの部分で書き間違いをやらかしていた事に気づきました。
 多分コピペした時に最後の行から複製したのが原因だと思います。
 自己解決した後ではありますがご指摘ありがとうございました。

255名無しさん:2012/04/02(月) 22:17:07
【バージョン】2.05
【設置鯖名】 @pages
【PHPのバージョン】5.2系
【実行】 gae-cron
【手動】 動く
【不明点など】デフォルトでの呼び方が上手くいかない

http://theninjabot.blog97.fc2.com/blog-entry-19.html
こちらのサイトの記述を参考に特定IDの呼び方を
固定しているのですが、デフォルト部分を『○○先輩』と
設定しようとして以下の通りに記述すると『先輩』としか
返してくれません。
 この記述をどういじれば良いのかずっと調べているのですが
まったく分からずに困っています。
どなたかお知恵をお貸し願えるでしょうか?

if(strpos($text,"{name}") !== FALSE){
if(!empty($reply)){
switch($reply->user->screen_name){
-------------------省略---------------------
default:
$text = str_replace("{name}",$rply->user->name . "先輩" ,$text);
}
}else{
$randomTweet = $this->getRandomTweet();
switch($randomTweet->user->screen_name){
-------------------省略---------------------
default:
$text = str_replace("{name}",$randomTweet->user->name . "先輩" ,$text);
}
}

 省略してある部分はすべて固定用の記述で、
こちらの動作は確認済みとなっています。

256名無しさん:2012/04/02(月) 23:24:54
>>255のものですが、よくよく見直したら'e'が抜けている事に気づき、
そこを修正したらちゃんと呼んでくれました。
確認不足のまま質問してしまいすみませんでした。

257名無しさん:2012/04/03(火) 07:52:25
【バージョン】2.05
【設置鯖名】 @pages
【PHPのバージョン】5.3.10
【実行】 gae-cron
【手動】 動かない
【不明点など】パーミッション値

先日まで全て問題無く動いていたのですが、少し変更を加えている内にリプライが手動ですら動かなくなりパーミッションの問題かと思って触っている内にbot.phpの画面が真っ白になって手動ポストもしなくなってしまいました。
なので@pagesさんのhelpを見ながらphpを644、txtやdatを606(604)に変更してみたのですがそれでも画面は白いままで、その後、過去スレや公式ページ、wikiなど参考にさせていただいて色々と試してみたのですが結局元通りには戻りませんでした。
今は@pagesさんのhelp通りの数値に戻していますが現状は変わっていません。bot.phpやreply-patternなどにミスが無いか確認したのですがそれらしいものは見当たらず、エンコードや改行コードも確認したのですが問題ありませんでした。
どなたかお力添えをいただけないでしょうか。お願い致します。

258名無しさん:2012/04/03(火) 09:34:46
そこまで拗れてしまったら最初からやり直しがいいと思う。公式から落としたEBをそのままUPしてちゃんと動くようになったら
bot.phpやreply-pattern.phpを一つづつ動作確認しながら直してくのが早い

259名無しさん:2012/04/03(火) 11:25:40
ありがとうございます。
ご指摘通り一度初めからやり直してみようと思います。
またどうにも分からない部分があったらこうして質問させていただくかもしれませんが、その時はまたよろしくお願い致します。

260名無しさん:2012/04/03(火) 16:31:58
FFFTPでアップロードするところまでできました。
そのあと「twitterbot/bot.php」を貼り付けても
404 Error - Not Found

指定されたページ(URL)は見つかりません。
と出ます。
どうすればよいのでしょうか?
ちなみにatpagesで作りました。

261名無しさん:2012/04/04(水) 02:51:59
>>260
まずは>>1-3

262名無しさん:2012/04/04(水) 02:52:23
>>260
まずは>>1-3

263名無しさん:2012/04/04(水) 09:48:52
>>261
役に立ちそうなのは全くありませんでした。

264名無しさん:2012/04/05(木) 03:10:35
【バージョン】2.05
【設置鯖名】 @page
【PHPのバージョン】5.3.10
【手動】 動かない
【実行】 SetCronJob
【実行間隔】 3分間隔
【不明点】
時間の条件に合わせて違うポストをするようにしたいと思っています。
現在は試しに、1時間の30分より前か、後かで条件分けをしています。

if(date("i") < 30){
$response = $eb->postRandom("days_7.txt");
} else {
$response = $eb->postRandom("data.txt");
}

ただ、data.txt単体でしたら手動でもcronでも問題なく動くのですが、
days_7.txt単体だけ(if(date("i") < 30){$response = $eb->postRandom("days_7.txt");} など)にして手動で動かそうとしても動きません。
以下がdays_7.txtを文章に記載した際に出るエラー文です。

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(34) "Could not authenticate with OAuth."
["request"]=>
string(22) "/1/statuses/update.xml"
}
または
object(SimpleXMLElement)#5 (2) {
["error"]=>
string(47) "Invalid Unicode value in one or more parameters"
["request"]=>
string(22) "/1/statuses/update.xml"
}

新しく呟き内容のtxtを増やした場合、EasyBotter.phpの改変も必要なのでしょうか?
調べてみても、ただbot.php内に新しいtxtを増やした場合の条件分けしか載っていないので、
EasyBotter.phpの改変は必要ないのかと弄っていないのですが、
そのままだとどうやってもdays_7.txtを読み込んでくれないので、もうお手上げ状態になってしまいました。
お手数ですがどなたかご教授賜れませんでしょうか。何卒よろしくお願いいたします。

265名無しさん:2012/04/05(木) 21:34:10
【バージョン】2.05
【設置鯖名】 @page
【PHPのバージョン】5.3.10
【手動】 動かない
【実行】 【実行間隔】 3分間隔
【不明点】

266名無しさん:2012/04/05(木) 21:37:45
>265
レス誤爆しました。失礼しました。

267名無しさん:2012/04/06(金) 07:59:39
【バージョン】2.05
【設置鯖名】 @pages
【PHPのバージョン】5.3.10
【実行】 gae-cron
【手動】 動かない
【不明点など】bot.phpが白紙状態

現在、wiki通りの手順でリプライだけを行うよう指定し、FFFTPでアップロードするところまで来ています。
そのままではbot.phpは真っ白なので色々パーミッションを設定してみたのですが、結局bot.phpの画面が真っ白のまま変わりませんでした。
phpファイルにはPHPエディタ[UTF-8 LF]を使用し、datファイルにはTeraPad[UTF-8N LF]を使用しています。
data.txtの文字コードが直しても変わってしまうので今はdata.phpに書き直しています。
過去スレに書いてあることはある程度試しているのですが、
phpファイルにミスは見受けられないし、文字コードも問題なさそうなのでパーミッションが問題なのかなと考えています。
以前はちゃんと自動で動いていたのですが、色々あって現在全て最初からやり直している状態です。
その時も真っ白な状態がずっと続いていて、
過去スレを見ながらあれやこれやと訳も分からないままにいじっていたら出来たという感じだったので解決策が分かりません。
今現在のパーミッションはPEAR755/dat666(606)/php/644に設定しています。

どなたかお時間ありましたらご教授いただけないでしょうか。お願いします。

268名無しさん:2012/04/06(金) 18:23:26
>>264
days7.txtがUTF-8になっていない関係で、自力解決いたしました。
お騒がせいたしました。

269名無しさん:2012/04/07(土) 01:20:21
>>263
テンプレ使ってない=>>1-3読めてない

270age:2012/04/17(火) 18:15:11
【バージョン】 Ver.2.0x
【設置鯖名】 ロリポップ(コロリポ)
【PHPのバージョン】5.2
【手動】 動く
【実行】 ロリポップの付属cron
【実行間隔】 10分間隔
【不明点】
現在、複数人格のbotを製作しているのですが、「かっこいい」とリプを貰った時の反応に苦戦しています。
//「格好良い」発言個別反応
"格好良い|格好イイ|格好いい|カッコ良い|かっこ良い|かっこい[いー]|カッコイ[イー]|カッコい[いー]"=> array(
"田中「ありがとう」",
"山田「ありがとうございます」",
"鈴木「さんきゅー」",
),
と設定し、リプも問題なくランダムで返ってくるのですが、この反応以外に「田中+かっこいい」「山田+かっこいい」「鈴木+かっこいい」
でもそれぞれ個別の反応をさせたいのです。
しかし初心者なりに頑張ってみたのですが、「田中さんかっこいい」等でリプを送っても「かっこいい」という部分にしか反応せず、
ランダムリプライを返してきてしまいます。
過去スレで似たような質問があり、その時は優先順位を上にすれば良いとあったのですが、どのように優先順位を付ければ良いのか
わかりませんでした。
何かアドバイスを頂けると助かります。宜しくお願いします。

271名無しさん:2012/04/18(水) 07:11:31
>>270

「田中+かっこいい」「山田+かっこいい」「鈴木+かっこいい」を「かっこいい」より先に記述すればいいだけ。

272age:2012/04/18(水) 14:17:58
>>271
ご返答有難うございます。最初にその方法を試した際にはやはり「かっこいい」にしか反応しなかったので悩んでいましたが、
改めて記述を先にして試してみたらしっかりと反応してくれました。
アドバイス頂き、本当に有難うございました。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板