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

EasyBotter初心者質問スレ4

1名無しさん:2011/10/19(水) 23:48:10
まず、公式ページや非公式wikiをチェックして下さい。
また、>>2-3のFAQ・過去スレ・関連スレをチェックして下さい。
それでも分からない場合は、【質問テンプレ】を使って質問して下さい。
もちろん回答が得られない場合もあります。(回答をもらえた時にはお礼もね。)

■手動でも(ブラウザで表示させても)動かない …… >>2-3のチェックを
■CRON関連でトラブル …… CRONスレへどうぞ。
 Twitterbotのcronスレ
 http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1260351215/
■EasyBotter.phpを修正したが動かない …… 改造は初心者の範疇外です。該当スレへ。
 EasyBotter2.0
 http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/

▼公式ページ:http://pha22.net/twitterbot/
▼非公式wiki:http://www26.atwiki.jp/easybotter_wiki

▼過去スレ
 1:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1266290935/
 2:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1273843076/
 3:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1287944674/

▼質問テンプレ
【バージョン】 Ver.1.4x/Ver.2.0x
【設置鯖名】 レン鯖名/自宅鯖
【PHPのバージョン】
【手動】 動く/動かない
【実行】 CRON鯖名/ブラウザ自動更新/手動/他
【実行間隔】 ●分間隔(CRON等で定期的に実行している場合)
【不明点】 (エラーメッセージがあればコピペ推奨)

▼回答いただける方へ
 回答はあくまで任意、答えられる範囲で結構です。(誘導も兼ねてage進行)
 回答できない、したくない場合は下手に煽らずスルー推奨。

2名無しさん:2011/10/19(水) 23:48:51
■初心者の方へ■
いきなり色んな事をしようと思うと躓いてしまします。
アレ?と思ったらまずは基本に立ち返って確認してみよう!
・公式ページ、非公式wikiを読み、手順通りにしていますか?
・文字コード、改行コード、パーミッションの設定はOKですか?
・ランダムポストのみ記載してブラウザで表示させたら、動作しますか?
・表示されたエラー(英文)をそのままググって、解決できませんか?

■悩んだら検索■
上記を熟読してもわからなければ、思いつく単語をこの掲示板の全てのスレッドで検索してください。
初歩的なミスについてはほぼ解決方法が出そろっています。

▼検索例
 リプライ関連: リプ、@、reply、返信などで検索
 タイムライン関連: TL、タイムラインなどで検索
 CRON関連: CRON、bot.phpなどで検索
 機能の条件づけ・組み合わせ: if、switch、条件、bot.phpなどで検索
 二重投稿: 二重投稿、if、bot.phpなどで検索
 リプライと同時に他のポストをする: bot.php、if、同時などで検索
 via〜変更: API、via、OAuthなどで検索+http://twitter.com/oauth_clients

■初歩プログラムの勉強を■
スクリプト初体験の方は、PHPリファレンスで最低限の勉強をしましょう。
下記5項目がわかれば基本機能を使いこなすことができるようになります。
(これらはPHPに限らず多くのプログラミングにほぼ共通するものです)

bot.phpで必要な知識
 ├演算子
 ├比較演算子
 ├条件分岐(if、switch)
 └date関数

reply_pattern.phpで必要な知識
 └正規表現(メタ文字)

3名無しさん:2011/10/19(水) 23:49:41
■■2.0設置での多い質問■■
・ランダムPOSTを○分おき、リプライを○分おきにしたい
・時間別にリプライorPOSTを分けたい
・特定の人だけにリプライを分けたい/スルーさせたい
など
まずは自力で調べる
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/90
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/220
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/228-229
それから2.0、初心者、質問スレ(場合によってはあったらいいなスレ)をくまなく見たら
似たような質問があるはず

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

・二重投稿して直らない
   twitterが重いのでしばらく待つ
   とりあえずcronの間隔を長めにとってみる
   if構文がダブってないか見る
   一旦サーバーに上げたものを削除して上げなおし、cronの設定もやりなおす
   サーバーを変えてみる

・よくわからない英語のエラー文が出てくるんです
   それをそのまま自動翻訳なりぐぐるなりして調べてみよう
   簡単なエラーならエディターでチェックできます

・フッターが説明どおりにしてるのにうまくいかない

・会話終了にすると[[END]]と出て機能してない
   会話終了を機能させる
   http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/280

・昨日まで正常に動いていたのにリプライ等動かなくなった
   twitter側が重くなった時など、例外エラーが返される場合があります。
   こちらではどうしようもないので復旧を待ちましょう

■■OAuthがらみで多い質問■■
・via EasyBotter のEasyBotterという部分が変えられると聞きますがどうやって変えるのですか?
   setting.phpの編集ページのOAuth認証についてに貼られているサイト先をよく読む
   この掲示板の参考レス http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1265625817/176

・自分のアカウントでOAuth認証登録してしまってbotアカウントで再度取得しようと思ったら直らない
・access_token access_token_secretが出てきません。
・なんか途中でエラー出て進みません
   各OAuth認証方法紹介してくださってるサイト様が追記して分かりやすく書いてくれてます
   この掲示板の参考レス http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1259689986/88
   PHPのバージョンが5以上であるか確かめてください。また借りてるサーバーのQ&Aもよく読んでください

・Descriptionの所にDescription is too short (maximum 30 characters)がでてしまい登録ができません。
   とりあえずDescriptionのところを30文字以上埋める

4名無しさん:2011/10/19(水) 23:53:04
EasyBotte.php内の旧APIから現行APIに更新

ttps://twitter.com/statuses/update.xml

ttp://api.twitter.com/1/statuses/update.xml

ttp://twitter.com/statuses/friends_timeline.xml

ttp://api.twitter.com/1/statuses/friends_timeline.xml

ttp://twitter.com/statuses/replies.xml

ttp://api.twitter.com/1/statuses/mentions.xml

ttp://twitter.com/statuses/friends.xml

ttp://api.twitter.com/1/statuses/friends.xml

ttp://twitter.com/statuses/followers.xml

ttp://api.twitter.com/1/statuses/followers.xml

ttp://twitter.com/friendships/create/id.xml

ttp://api.twitter.com/1/friendships/create/id.xml

5名無しさん:2011/10/19(水) 23:57:12
【書き込み前の注意】

初心者さん
 →EasyBotter初心者質問スレ3
改造してる人・NOT初心者
 →EasyBotter2.0
雑多な質問
 →スレ立てるほどじゃないその他の質問スレ
CRON・定期実行
 →Twitterbotのcronスレ
自作・他botプログラム等
 →TwitterBotPHP質問スレ

------------------------------------------
逆引き

EasyBotter初心者質問スレ3
→初心者さんかつ改造未導入であること

EasyBotter2.0
→慣れきたので改造をしてみたい、改造を自己責任で行える方

botにこんな機能があったらいいなスレ
→考案及び提示

phaがときどき見るかもしれないスレ
→EB製作者様への感想・意見・バグ報告

------------------------------------------

本家よくある質問
http://pha22.net/twitterbot/2.0/faq.php

6名無しさん:2011/10/20(木) 00:26:01
コピペで書き換え見逃した場所が・・・orz

7名無しさん:2011/10/22(土) 16:26:21
2.05をDLして運用しているんですが、
今までローテーションだったものをランダムポストをしようとしたら
Fatal error: Call to undefined method EasyBotter::rento_check() in /****/****/****/EasyBotter2.05/EasyBotter.php on line 92
とでました
で、92行目を見たら
//ランダムにポスト
function postRandom($datafile = "data.txt"){
$status = $this->makeTweet($datafile);    ←92行目
if(empty($status)){
$message = "投稿するメッセージがないようです。<br />";
echo $message;
return array("error"=> $message);
}else{
//idなどの変換
if(preg_match("@{.+?}@",$status) == 1){
$status = $this->convertText($status);
}
$response = $this->setUpdate(array("status"=>$status));
return $this->showResult($response);


php自体は弄ってなく、最初からこの状態だったのですが、これは何がエラー原因なのでしょうか?

87:2011/10/23(日) 17:39:02
誰かいませんか・・・?

9seira:2011/10/23(日) 18:52:21
一見、普通の女の子の日記ですが、
ある事をした後に更新しています。かなり中毒性が高いので注意が必要かもしれないです。

ttp://prof9pop.web.fc2.com/hrk/

10名無し:2011/10/24(月) 23:24:36
【バージョン】 Ver.1.4x/Ver.2.0x
【設置鯖名】 @page
【PHPのバージョン】PHP-5.2.6
【実行】 GAE-cron
【実行間隔】 30分間隔
【不明点】
どうしても調べて分からなかったのでご伝授頂けたらと思います。

今現在とあるbotを稼働させていまして、特定のIDのTLには反応させないようにさせたいのですがPHPコードが調べても分からず頭を悩ませています。
今現在bot事態は普通に稼働しているので問題はないのですが、とあるbotと連携しているため、そのとあるbotからのリプには反応させてもTLには反応させたくないと考えているのですが上手い方法ないでしょうか。

プログラミングはbotを作りたいがために独学でいくらか調べてはいるのですが、まったくの初心者でどうも分からなかったので教えて頂けるとありがたいです。

11名無しさん:2011/10/25(火) 03:37:21
>>10
改造はスレ違い、書き込むなら2.0スレへ
ついでに言うと過去の書き込み漁ればソースある
…てわけで書き込む前に>>1-3くらい読もうね

12名無し:2011/10/25(火) 07:26:52
11>ご伝授ありがとうございます。もう一度2.0の方に書き込み直します。
どっちにするか悩んだのですが、初心者なのでこちらに書き込んでしまいました。
またソースもずっと探して過去スレも見ていたのですがしっくりくるソースが見つからなかったので書き込ませていただきました。
お手数おかけしてしまいすみません。

13名無しさん:2011/10/28(金) 02:03:47
調整あげ

14名無しさん:2011/10/29(土) 23:28:10
bot.phpの中身を

<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();

$response = $eb->reply(2,"date.txr","reply_pattern.php");
//$response = $eb->postRandom("data.txt");
?>
DL時よりもむしろ減ってるのにTLはできてリプライはできないとかおかしいやろ

プログラミングができなくても作れるTwitter botの作り方読みつつ「試しにbotを動かしてみる」までは読んだが

15名無しさん:2011/10/30(日) 00:02:05
>>14
wikiも見ると幸せになれる

16名無しさん:2011/10/30(日) 00:04:48
date.txr

(´・ω・)・・・・?

17名無しさん:2011/10/30(日) 12:42:05
どこかのwikiコピペした際に間違ってただけでアップロードしたデータはtxrになってなかったわ

解凍直後の
//$response = $eb->postRotation("data.txt");
//$response = $eb->reply(2,"data.txt","reply_pattern.php");の//削ってTLは毎時5分に話すようにできているが リプライ送ったときだけbop.phpが真っ白になる
そして送っていないときは『2分以内に受け取ったリプライはない』とご丁寧に答えてくれる

18名無しさん:2011/10/30(日) 14:40:06
>>17
>>1-3よく嫁

19名無しさん:2011/10/30(日) 18:35:32
【バージョン】 Ver.1.4x/Ver.2.0x
【設置鯖名】 @PAGES
【PHPのバージョン】
【手動】 動かない
【実行】 手動
【不明点】 ランダム発言を実行しようとすると以下の様に表示されます。

Twitterへの投稿に失敗しました。
ユーザー名:@〜〜〜

object(SimpleXMLElement)#5 (2) {
["error"]=>
string(22) "Status is a duplicate."
["request"]=>
string(22) "/1/statuses/update.xml"
}

全てのファイルは「UTF-8 LF」の形式なっており、bot.phpは


<?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からランダム発言の記述を消して、リフォローの記述を入れたところリフォローは正常に機能。
リプライ返しもリプライがあったかなかったかの判別はできるものの、やはり投稿ができずにとまります。
似たような症状の方は過去にも多いようですが、同じ症状の方は見つけられませんでした。
パーミッションはPHPが666でその他を606に設定しています。ご教授よろしくお願いします。

20名無しさん:2011/10/30(日) 18:38:55
↑すみませんバージョンは2.05です。

21名無しさん:2011/10/30(日) 19:38:15
>>19
http://www26.atwiki.jp/easybotter_wiki/pages/21.html#id_f2c49975

あと「全てのファイル」を「UTF-8 LF」にして良い訳でもない。

22名無しさん:2011/10/30(日) 19:51:15
>>18
あの後、もしかしたらと思い、pearフォルダ内のphpをすべて666にしたら解決しました

その代わりTLもリプライも二重投稿するようになってしまいましたが

2322:2011/10/30(日) 19:56:43
cronはgoogleから持ってきていますが今ははずして手動で叩いてテストしてます

24名無しさん:2011/10/30(日) 20:02:17
>>21
ありがとうございます。ログとライセンスは違いました。
しかしそのページの情報を辿って問題を解決しました。

>>22
ありがとうございます。
しかしどうやらdata.txtの選択肢の数が少なかったのが原因だったようです。

25名無しさん:2011/10/30(日) 20:03:12
>>24>>22とありますが無視でお願いします。スレ汚し申し訳ない。

26名無しさん:2011/10/30(日) 21:11:40
【バージョン】 Ver.2.05
【設置鯖名】 @PAGES
【PHPのバージョン】5.3.8
【手動】 動く
【実行】 cron
【不明点】

動作自体は正しく動いていますが
自分が投稿した言葉にもTL返信をしているようで、そこから自分宛のリプを繰り返し
独り言をずっと続けてしまうことがたまにあります。
(今回は2分間隔で約1時間自分宛のリプライを繰り返していました。)

投稿用かTL返信用、返信用のどれかからそのキーワードを外すのが一番早いかと思うものの、
どれも外し難いものなので困っています。
過去に別件で試行錯誤して何か余計なことをしたせいかもしれないと思い、
今のところはEasyBotter.phpを新たに上げなおして様子を見ています。
自分の投稿ワードにリプライさせないようにするにはどうしたら良いのでしょうか?

27名無しさん:2011/10/30(日) 23:50:44
>>26
とりあえずセッティングファイルで、botのスクリーンネームが大文字小文字も含め正しいか再確認
リプライ上限回数もちょっと確認してみる

他スレか過去スレで同様の症状と対処を見た記憶があるので
適当なワードでスレッドを検索しまくることをおすすめする

28名無しさん:2011/10/31(月) 01:51:52
>>26
とりあえず応急処置ならこれかな
http://www26.atwiki.jp/easybotter_wiki/pages/29.html#id_2e3272f0

2926:2011/10/31(月) 03:21:53
>>27
スクリーンネームの記述が間違っていました…お恥ずかしい限りです。
「ttp://twitter.com/#!/ABCbot」の「ABCbot」に当たる部分のことですね。
ご指摘どうもありがとうございます。

>>28
上記の解釈で間違いが無いようでしたらこれで大丈夫だと思いますが、
念のため応急処置もしておこうと思います。
ご指南どうもありがとうございます。

30名無しさん:2011/11/01(火) 00:59:29
【状態】ver2.05 @PAGES GAE Cron2分で動作確認済み

<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
$response = $eb->autoFollow();
?>

なら2分おきにツイート・リプライ対応・リフォローも完璧ですが。

<?php
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->autoFollow();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
if(date("i") % 6 == 0){
$response = $eb->postRandom("data.txt");
}
?>

としても6分おきにつぶやかないどころか、2分おきにもつぶやきません
ランダムポストが昨日しない状態ですね。手動でもつぶやかないことも確認済みです。
簡単な記述なのに間違えてるのか見つけられずお恥ずかしい限りですが、ご教授よろしくおねがいします。

31名無しさん:2011/11/01(火) 01:52:35
>>30
if(date("i") % 6 === 0){
$response = $eb->postRandom("data.txt");
}

32名無しさん:2011/11/01(火) 02:09:08
>>31ありがとうございます
しかしこれでもダメなようです。
確認してもcronが止まってる様子はないので記述のミスだとは思うのですが。

33名無しさん:2011/11/01(火) 04:34:07
>>30
ttp://www26.atwiki.jp/easybotter_wiki/pages/25.html
落とし穴に注意2…CRONと設置サーバーの時間がズレている、指定した時間に実行の処理が終わらないとかは?
GAEで2分はタイトだからリプライ後でランダムポストだとズレるかも

34名無しさん:2011/11/01(火) 10:48:13
>>33
深夜に2.3回ほどつぶやいていたので、一分、大きくて二分以内の時間ズレが原因な気がしてきました。
こうなってくるとCRONの間隔を2分や3分にするのは厳しいので5分にすることを考えると、もはや「if」を使う必要がないので「if」なしでいきます。
時間指定のポストもその内やりたいと思っているのでその時に2分以内の誤差をカバーしても無理だったらまた質問したいと思います。
ありがとうございました。

35名無しさん:2011/11/03(木) 22:24:15
@pagesを使ってPHPのファイルをサーバーにアップロードしたいのですが…ちょっとイマイチアップロードの仕方が分かりません。色々検索もかけてみたりはしたのですがいまだに分からず…。
@pagesを使ってる方は、どのようにしてファイルをアップロードしているのですか?

36名無しさん:2011/11/03(木) 22:51:31
>>35の者ですが、やり方が分かりました!><なのでこれについての回答はしなくていいです。お騒がせ者でスミマセン;

37名無しさん:2011/11/06(日) 10:18:09
TLのツイートを拾って挨拶を返すときに例として、
おはようございます、〜〜〜さん
と、〜〜〜の部分にそのツイートをした人の名前を入れたいのですが、どうやればいいのでしょうか?

38名無しさん:2011/11/06(日) 14:22:42
>>37
本家や過去レス見たら分かると思うけど{name}を使う

39名無しさん:2011/11/06(日) 18:12:40
曜日ごとに違うファイルを呼び出したいのですが、どういう記述をすればよいのか分かりません。
例えば、月曜日にはmon.txtを、火曜日にはtue.txtを…といった感じです。

40名無しさん:2011/11/06(日) 19:32:35
>>39
http://www26.atwiki.jp/easybotter_wiki/pages/33.html
を見て時間のところを曜日に書き換えればいけます

41名無しさん:2011/11/06(日) 19:54:43
>>38
ありがとうございます
それってランダムにフォロワーの名前が出るものだと思ってました(;・∀・)

42名無しさん:2011/11/07(月) 19:01:06
>>40
ありがとうございます!
今週動かしてみます

43densya103:2011/11/08(火) 21:53:07
OAuthの設定について - 認証キーの取得で、botのアカウントにログインした状態で、やったのですが、Access TokenもAccess Token Secretも空白になります。
どうすればよいでしょうか?

44densya103:2011/11/08(火) 21:57:39
使っているバージョンは最新のものです

45densya103:2011/11/08(火) 22:00:48
すいません三回やったら出てきました

46名無しさん:2011/11/13(日) 21:30:13
いくつか単語を登録しておいてたとえばtlに「ラーメン」と出た時に「ラーメン」を使った返事を返すようにはできますでしょうか
できるなら書き方教えてください

47名無しさん:2011/11/14(月) 00:26:47
>>46
お約束で聞いておくけど、>>1は読みましたか?

んで、EasyBotter公式サイトを読んでいるだけで「これかな?」と思う部分が一つもありませんでしたかね

48名無しさん:2011/11/14(月) 00:40:51
>>46
ここは教えてと言えば手取り足取り教えるスタンスじゃないし、
自分から調べる気やPHP学ぶ気がない人には教えることはナイデスヨ?
意地悪ではなく、自分でメンテナンスできないと他のレン鯖の方に迷惑を掛けることを頭に残してね。

49名無しさん:2011/11/14(月) 01:24:36
TLに反応するbotを作成中で練習しているのですが(手動)
反応する言葉を何文か投稿し反応させると、全部にそれぞれリプを送ってしまいます。
例:「おはよう」とツイートし次に「おやすみ」とツイートすると「@おはよう」「@おやすみ」というように送ってしまう
直前のTL(「おやすみ」)にだけ反応させるためにはどうすればいいでしょうか?

50名無しさん:2011/11/14(月) 02:10:11
>>49
直近の反応ツイートに対しリプライを送るは改造になるかな、ここではスレ違い
あと仕様上の問題で直近反応語句に反応させるということは「同一ID」のツイートを読み込んで
リプライをする時に反応語句が複数ある場合、直近以外無視するという動作が必要になります。

51名無しさん:2011/11/14(月) 02:31:06
>>50
難しそうですね…時間があるときに検索して頑張ってみます。
ありがとうございました。

52名無しさん:2011/11/15(火) 09:10:02
【バージョン】 Ver.2.0x
【設置鯖名】 ロリポップ
【PHPのバージョン】
【不明点】
Fatal error: Class 'HTTP_Request2' not found in (アップロード先URL)EasyBotter.php on line 51

easybotter公式や非公式wikiを見て進めていたのですがいきなりつまずきました…
パーミッション変更済、OAuth認証済、他はダウンロードしたときのままです。文字コードも正しいです。
ぐぐっても解決しなかったので質問させていただきます。解決法をご存知の方ご回答お願いいたします。

53名無しさん:2011/11/16(水) 01:32:35
>>52
not found ということは404エラー、つまりURL先がない。
URL間違ってませんか?

54名無しさん:2011/11/16(水) 16:06:29
・設定した返信間隔(設定上では3分)以内にリプライがあるとアップロード先URLが真っ白になります。
3分以内にリプライがないと「3分以内に受け取った@はないようです。」に変わる。
・つい数時間前まではしっかりと動作してたのに急に動作しなくなるという状態

55名無しさん:2011/11/17(木) 22:53:25
>>54
>>1-3

56名無しさん:2011/11/22(火) 13:29:59
//誕生日
switch(true){
case (date("m") == 11 && date("d") == 21 && date("G") == 0 && date("i") == 0):
$response = $eb->postRandom("hpb1.txt");
break;
case (date("m") == 11 && date("d") == 21 && date("G") == 0 && date("i") == "1"):
$response = $eb->postRandom("hpb1.txt");
break;
}

このようにbot.phpでキャラの誕生日につぶやくようにしているのですが
hpb1.txtの中身は1行しか書いてないので
わざわざtxtファイルを用意せずに同じファイル内に書いてしまいたいです

$response = $eb->postRandom("今日は○○の誕生日だな");

こんな感じにするにはどういうスクリプトにしたらいいのでしょうか

57名無しさん:2011/11/24(木) 20:53:49
>>56
その場合は本体の改造が必要なのでこのスレでは回答できない
改造が面倒、改造の方策が全く見当つかない、ってことならファイルを用意した方が良い

あと「==」より「<」でまとめた方がスマート

5856:2011/11/24(木) 23:11:26
>>57
なるほど改造になっちゃうんですね
では今までどおりで行こうと思います。

case (date("m") < 11 && date("d") < 21 && date("G") < 0 && date("i") < 0):
こういう感じにすればいいのでしょうか?

59名無しさん:2011/11/25(金) 00:38:56
>>58
おーい、==を<に(または=<)変える、ってのは1箇所だけだよ
等号、不等号は中学生レベルのものだからよく見直して
ついでに非公式Wikiの時間分けなんかの項目を読むと、理解度が深まると思う

6058:2011/11/25(金) 08:45:38
>>59
すいませんそしてありがとうございます!
勉強してきます〜

61名無しさん:2011/11/27(日) 18:03:39
>>60
っ http://www26.atwiki.jp/easybotter_wiki

62eee:2011/11/28(月) 23:31:46
▼質問テンプレ
【バージョン】 Ver.2.05
【設置鯖名】 @peges
【PHPのバージョン】
【手動】 動かない
【実行】 手動
【不明点】
Bot.phpに手動アクセスしたら500エラーが出ました
問題が全く分からないので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("データを書き込んだファイル名");

//用意したデータを順番にポストしたい
$response = $eb->postRotation("データを書き込んだファイル名");

//@で話しかけられたときにリプライしたい
$response = $eb->reply(cronで実行する間隔(単位:分), "データを書き込んだファイル名", "パターン反応を書き込んだファイル名");

//タイムラインの単語に反応してリプライしたい
$response = $eb->replyTimeline(cronで実行する間隔(単位:分),"パターン反応を書き込んだファイル名");

//自動でフォロー返ししたい
$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 && datew("j") == 14){
$response = $eb->postRandom("valentine.txt");
}else{
$response = $eb->postRandom("data.txt");
}

//準備したテキストを順番にポストしていって、準備した中から「めでたしめでたし」が投稿されたらbotの投稿をそこで止める
$response = $eb->postRotation("data.txt","めでたしめでたし");
*/


?>

63名無しさん:2011/11/29(火) 00:02:16
>>62
とりあえず「500エラー PHP」でググってみたかな?
各種パーミッション(含ディレクトリ)を再確認&アップロードし直しなど試してみれ〜

64名無しさん:2011/11/30(水) 23:57:30
【バージョン】 Ver.2.05
【設置鯖名】 ロリポップ
【PHPのバージョン】5.2
【手動】 動く?
【実行】 手動
【不明点】
wikiのとおりに何の手も加えずに最初からやっていて
サーバーにアップし、2分以内に受け取った@はないようです。まではうまくいきました。
そこから本アカウントからBOTアカウントにリプしても2分以内に〜から表示がかわりません
これはいったい何が原因なのでしょうか…?確かツイッター側の問題かも、とあったので
時間をあけて再度リプしたのですが、やはり変わらず…。どなたかヒントでもくださると幸いです…

65名無しさん:2011/12/01(木) 02:35:02
>>64
基本情報が少ないので答えようがない。
リプライ用のファイルには充分にリプ内容があるのでしょうか?
テストされている反応語句とそのリプライファイルの反応語句部分の内容をうpしてくれたら答えれるかもしれません。

66名無しさん:2011/12/01(木) 09:14:25
>>64です
すみません、色々説明不足でした
何もいじらないままでやりましたのでリプライファイルは以下です
<?php
//特定の単語を受け取った場合に特定の反応を返したいときに使う、反応のパターンを書くためのファイルです。
//複数のパターンに一致する場合は上のものが優先されます。PHPの正規表現にも対応しています。

$data = array(
//「おはよ」を含む発言(「おはよ」「おはよう」「おはよー」など)を受け取ると「おはようございます、御主人様」もしくは「Good Morning, Master.」と返すサンプルです
"おはよ"=> array(
"おはようございます、御主人様",
"Good morning, master.",
),
//「今日の運勢」を含む発言を受け取ると6種類の中からランダムな返答を返すサンプルです
"今日の運勢"=> array(
"大吉",
"中吉",
"小吉",
"末吉",
"吉",
"凶",
),
//「こんにちは」「こんにちわ」「こんちは」「こんちわ」を含む発言を受け取ると「こんにちはこんにちは!」と返す正規表現のサンプルです
"こん(に)?ち[はわ]"=> array(
"こんにちはこんにちは!",
),
//「◯◯は好き?」という発言を受け取ると「◯◯おいしいです」と返す正規表現のサンプルです
//ただし「◯◯」の前には空白か「、」か「。」を入れないと「は好き?」以前の文章が全て繋がって表示されます
"([^\s、。]+?)は好き?"=> array(
"$1おいしいです",
),
//「会話終了」を含む発言を受け取るとリプライを返さなくするサンプルです
"会話終了"=> array(
"[[END]]",
),
);

そして本アカからのbotへは「おはよう」としました

67名無しさん:2011/12/01(木) 18:50:11
>>66
セッティングファイルの内容は正しい?
特にBotのスクリーンネームは大文字小文字含めて同一になってるか

68名無しさん:2011/12/02(金) 11:14:34
>>66です
遅くなりましたが原因が分かりました!大文字スペースがひとつだけ入ってました…
こいつを見つけるのに時間がかかってしまってお返事が遅くなりました。
レスくださった方ありがとうございます!
今は手動で色々やっています。レスすると通常ツイートも一緒に流れてしまってそれの原因を探している途中です。
またどうしても分からない時はお世話になってしまうかも知れません…

69名無しさん:2011/12/02(金) 20:02:25
【バージョン】 Ver.2.05
【設置鯖名】 ロリポップ
【PHPのバージョン】5.2
【手動】 動く?
【実行】 手動
【不明点】
何度もすみません…。あれから色々とやって、手動でツイートはしてくれるようになりましたし、リプライもしてくれるようになりました。
ただ相変わらず、リプライを返すと同時に通常のツイートも呟いてしまいます。
bot.phpの中身は以下です
<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->reply(2,"data.txt","reply_pattern.php");
$response = $eb->postRandom("data.txt");
?>

またreply_pattern.phpの内容は以下です
<?php
//特定の単語を受け取った場合に特定の反応を返したいときに使う、反応のパターンを書くためのファイルです。
//複数のパターンに一致する場合は上のものが優先されます。PHPの正規表現にも対応しています。

$data = array(
//「おはよ」を含む発言(「おはよ」「おはよう」「おはよー」など)を受け取ると「おはようございます、御主人様」もしくは「Good Morning, Master.」と返すサンプルです
"おはよ"=> array(
"おはよう!",
"早起きだね",
),

"眠い"=> array(
"まだ眠そうだね",
),

と言った感じでいくつかリプライパターンを書いています。
bot.phpにアクセスして、2分以内に〜を見てから、botにリプライ、その後にbot.phpにアクセスすると
ツイートされた分のリプライと通常のツイートが投稿されてしまいます。
これはいったい何が原因なのでしょうか?
何度も本当に申し訳ありませんが、ヒントか何かいただけると幸いです…。

70名無しさん:2011/12/02(金) 21:13:52
>>69
非公式Wiki通りにやりましょう

71名無しさん:2011/12/02(金) 22:29:49
>>69
その設定の状態だとそれは正常。
発言させたくないなら
$response = $eb->postRandom("data.txt");
の所に条件を設定しなければならない

例えば
if(date("i") % 4 === 0){
$response = $eb->postRandom("data.txt");
}
なら4分の1の確率でつぶやく事になる
他のを勉強したいならここを参照
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3php.htm

72名無しさん:2011/12/03(土) 02:23:39
【バージョン】 Ver.2.05
【設置鯖名】 @pages
【PHPのバージョン】5.2
【手動】 動く
【実行】 手動
【不明点】 通常Postの単語とリプライ用の単語を分けたくて新たにreply.txtを作り$response = $eb->reply(2,"data.txt","reply_pattern.php");のdata.txtをreply.txtに置き換えたところ、通常ツイートはできているのですが、
リプライの方が2分以内に受け取った@はないようです。さえも出ないようになってしまいました。
これはもっと別の設定ではないといけないのでしょうか?

73名無しさん:2011/12/03(土) 05:52:16
>>72
>>1-3読んだ?
特に>>3の↓
・アップしたら真っ白になるだけ/文字化けしてる
   エンコードUTF-8(TeraPadはUTF-8N)BOMなし、改行コードはLFになってるか
   data.txtとreply_pattern.phpとlog.datのパーミッションが666になってるか(サーバーによって違う場合もあり)
   setting.phpで何か間違ってないか

7472:2011/12/04(日) 02:08:03
>>73
申し訳ないです。読んでたつもりが見事にそこの辺り読み飛ばしてました。
エンコードを修正したら解消しました。ありがとうございます。

75名無しさん:2011/12/04(日) 16:53:56
【バージョン】 Ver.2.0x
【設置鯖名】 @pages
【PHPのバージョン】
【手動】 動く
【実行】 WebCron お試し?
【実行間隔】 本文1時間、リプTL反応5分間隔(CRON等で定期的に実行している場合)
【不明点】 手動ではリプライもTL反応もしているのですが、cronによる起動ができません。
ヒストリーなどでは、cronが正常に動いた記録が残っているのですが、実際botはつぶやいていません。
どのような問題が考えられるか、アドバイスを頂ければと思います。

76名無しさん:2011/12/04(日) 17:26:55
>>75
BOT側は問題ないね
cronの叩くURL先がどこか間違ってないかチェックしてとしか答えれないかな
cronサービスがどこのか答えれたら案外答えれるかも

77名無しさん:2011/12/05(月) 14:11:37
鯖時間とcronがずれてるとかは?
時間指定の書き方にもよるけど@pagesなら少しずれることも考えて書くのもあり

78名無しさん:2011/12/06(火) 21:27:08
時間指定とかの話はここではなくEasyBotter2.0スレでしょうか?
・時間になったら特定のツイートをしてほしい
・時間内は呟きを止めたい
このふたつでお聞きしたいことがあるのですが…

79名無しさん:2011/12/06(火) 22:10:17
>>78
それだと簡単だけど一応改造になるのでEB2.0スレ
基本手を加える系はそうだと思ってもらって問題ない
手を加えず元からある機能の質問がこのスレ

80名無しさん:2011/12/06(火) 22:27:49
>>79
ありがとうございます!
そちらに移動してみます

81名無しさん:2011/12/07(水) 01:10:03
>>78=80
特定のつぶやきを別ファイルにすれば、bot.phpで時間指定すりゃ良いんだけど

82名無しさん:2011/12/07(水) 04:59:58
【バージョン】 EasyBotter2.05
【設置鯖名】 SiteMix
【PHPのバージョン】PHP Version 5.3.2
【手動】 動かない
【実行】 手動
【実行間隔】×
【不明点】
サーバーにファイルをアップして、手動でbot.phpをブラウザで見る段階ですが、
http://ボットの名前.sitemix.jp/ボットの名前/bot.php
で開いても真っ白で何のメッセージも出ません。
これはエラーということでしょうか?それともこの状態で良いのでしょうか?

非公式wikiには真っ白なページに「2分以内に受け取った@はないようです。」と表示されれば準備完了、間違っている場合はエラーメッセージが出る
とあったのですが、表示された画面がどちらにも当てはまらなかったため、何が間違っているのかわからなくなりました。
本アカから見本の反応ワードを@付きでツイートしても反応しません。ツイートした後にブラウザでもう一度開いてもページは真っ白のままです。

sitemixを使っている人の類似の質問がなかなか見つけ出せなかったため、書き込ませてもらいました。
どなたかご協力お願いします。

83名無しさん:2011/12/07(水) 17:41:37
>>82
ちょっとこのスレをさかのぼってもらえれば、全く同じ症状の人がいたんだが
繰り返しますが>>1-3は読みましょうよ、まんまな答えが書いてありますし

84名無しさん:2011/12/07(水) 18:53:33
>>81
>>78=80です
その時間指定がうまくいかなかったんです…

85名無しさん:2011/12/07(水) 19:27:03
>>83
82です。おっしゃる通りスレ4を1から見たら同じ症状を見つけ、文字コードを変えたらできました。
スレ1を見てあまりの量に諦めかけましたが、スレ4内にあると教えてくださったおかげで無事探し出すことが出来ました
ありがとうございました。

86eee:2011/12/07(水) 20:25:54
>>62なんですが500内部サーバーエラーがどう弄っても治りません...
パーミッションも確認したし再アップロードもしました
問題ないはずなんですが...

87aki:2011/12/07(水) 22:53:56
初めまして。質問させてください。easybotter2.05を使っております。
botの特定のポストに、ある単語でもってリプライすると特別な返信がくる、と言うような事は出来ないでしょうか。
例えば、
botがランダムポストで「さむいーさむいー」

「ぎゅっ」とリプライする

「言ってみるものね」と返信が来る。(通常は「ぎゅっ」とリプライすると「やめてよ!///」などと別の言葉が出るようになっている。)
と、言うようなものなのですが。
どこをどういじれば良いのかさっぱり検討もつきません。
ご教授宜しくお願いします。

88名無しさん:2011/12/07(水) 23:16:28
>>85
うん、だから>>72-73で出てきてた
1から見なくても書き込み前に最新10レス見るだけで解決してたわけだ



何度も繰り返しますが、>>1-3を読み実行する努力が足りない人が多い
今後書き込みする人はまず読む・調べるの努力を

89名無しさん:2011/12/07(水) 23:18:32
>>87
|
↑これが単語指定の末尾に多いとか、コピペ等でダブって指定はありませんか?

9087:2011/12/08(木) 01:07:22
>>89 ありがとうございます。ダブッて指定はありません。

91名無しさん:2011/12/08(木) 01:10:42
通常は  bot「ほげほげ」→@bot「ぎゅっ」→bot「やめてよ!///」
それを「さむいーさむいー」のポストの後だけ
bot「さむいーさむいー」→@bot「ぎゅっ」→bot「言ってみるものね」
こういうことじゃないの?

botのポストを記録して、リプする時そのファイルを読み込んでマッチするとか
該当ポストをしたときフラグを立てておいて、フラグが立ってたら指定リプをするようにするとか
改造しないとできないような

92名無しさん:2011/12/08(木) 02:55:20
取り合えず改造だからスレ移って欲しい

93名無しさん:2011/12/16(金) 09:10:06
【バージョン】 EasyBotter2.05
【設置鯖名】
【PHPのバージョン】5以上
【手動】 −
【実行】 現在手動
【実行間隔】−
【不明点】

反応用語がなかった場合にランダムリプライ(その言葉知らない等...)を
させたいのですがどうもうまく行きません

$response = $eb->reply(1,"random.txt","reply_pattern001.php");

反応用語をreply_pattern001.phpにランダムリプライはrandom.txtに入ってます
reply_pattern001.phpは作動しています。どなたかご教授よろしくお願いします。

94名無しさん:2011/12/18(日) 13:25:04
あげ

95名無しさん:2011/12/18(日) 15:15:04
>>93
反応語句がなかった場合のランダムリプライの内容は十分にある?
ないとTwitterの仕様の問題でリプライできなくなるよ

あとどのcron使うのかは知らないけど1分間隔はやめておいたほうがいい。
ほとんどの場合正常にcron働かないし、鯖にも負担を掛ける。
後者が自宅鯖ならいいけどレンタル鯖なら他の人にも迷惑を掛ける。

96名無しさん:2011/12/21(水) 03:14:27
【バージョン】 EasyBotter2.05
【設置鯖名】 @pages
【PHPのバージョン】5以上
【手動】 動かない
【実行】 手動
【実行間隔】 -
【不明点】

現在ファイルの書き換えも全て済まし、botを手動で動くか試している段階
です。
はじめ手動で試していたときは、通常呟き・リプライ共にできていたのですが、中身をいじっているうちにどちらも行えなくなってしまいました。
アクセス先のページにはエラーメッセージなど一切書れておらず、真っ白です。
とりあえず一旦はじめからやり直そうと思い、解凍したての中身に変え、ランダム呟きの文頭//を外してアクセスしてみました。
これにアクセスしてもさっきと同様ページに何も表示されません。

これはサーバーの問題なのでしょうか?

97名無しさん:2011/12/21(水) 09:09:37
【バージョン】 Ver.2.5x
【設置鯖名】 @page
【PHPのバージョン】PHP-5.2系
【手動】 動く/動かない
【実行】 CRON鯖名(GAE)
【実行間隔】 5分間隔
【不明点】10月にBOTを作って以来、問題なく動いていたはずの自作BOT
がここ1週間くらいはリプライを返してくれなくなりました。
通常POSTと、TL反応は問題なく動くようです。
手動でも様子を見てみましたが、こちらからBOTへリプライをした時のみbo
t.phpが真っ白になってしまいます。

>>3を見ながら、エンコード・改行コード・パーミッション値等チェックしな
おしましたが、状況は変わりません。
今まで問題なく動作してたこともあり、最初はクーロンかサーバーの不具合か
なとも思ったのですが、リプライだけしなくなるのはおかしいような気がしま
す。
直近の更新はreply_pattern.php内のリプライを増やしただけで他は何もいじ
っていません。
どこの記述が間違っているのかもわからない状態です。説明下手で申し訳ない
のですが、回答よろしくお願いいたします。

98名無しさん:2011/12/21(水) 10:31:56
>>97です。自己解決いたしました。
reply_pattern.php内のリプライを増やしただけで他はいじっていない、と前述しましたが、増やしたことそのものが原因なのかと思い当たり、
reply_pattern.phpに書いてあるものを一回ごっそり減らしてみたらリプライを返してくれるようになりました。

つまらないことでスレを使ってすみませんでした。

99名無しさん:2011/12/22(木) 12:25:43
初歩的な質問ですみません
リプライパターンをたくさん増やしたい場合どうすればいいのでしょうか?
reply_pattern1、reply_pattern2とファイルを増やせばいいのかと思ったのですが
reply_pattern2の反応用語の際、reply_pattern1のランダム返信になってしまいます。

100名無しさん:2011/12/25(日) 02:54:49

【バージョン】 Ver.2.0x
【設置鯖名】 @pages
【PHPのバージョン】5以上
【EasyBotterの改造】改造していない
【手動】 動く
【実行】 GAE-cron
【実行間隔】 2分間隔
【不明点】
手動、cron共に通常POSTは動いているのですが、リプライを返す動作をしてくれません。コード・パーミッション値は確かめましたが、変化はありませんでした。
解決方法をご提示いただけると幸いです、よろしくお願いします

101名無しさん:2011/12/25(日) 18:09:58
>>100
テンプレ使っていてもそれだけではエスパーではないので答えようがありません
bot.phpの中身をコピペしてください。

重要:EasyBotterはプログラムなので記述外の事は出来ません。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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