したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

EasyBotte r初心者質問スレ 2

1名無しさん:2010/05/14(金) 22:17:56
まず、公式ページや非公式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://wiki.livedoor.jp/easybotter_wiki/
▼前質問スレ:http://jbbs.livedoor.jp/bbs/read.cgi/internet/6629/1266290935/

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

▼回答いただける方へ
 回答はあくまで任意です。答えられる範囲で結構です。E-mail欄にageを入力下さい。
 回答できない、したくない場合は下手に煽らずスルー推奨。

951名無しさん:2010/10/15(金) 16:58:11
できます。

952名無しさん:2010/10/16(土) 00:31:10
>>950
うちのbotで言わせてるよ
曜日についてはwikiに載せてあるリンク先にモロに書いてあるよ

953名無しさん:2010/10/16(土) 14:34:14
ランダムツイートを2時間おき、
リプライやフォローを10分おきにしたいのですが、

<?php

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

$response = $eb->autoFollow();
$response = $eb->reply(10,"data.txt","reply_pattern.php");
if(date("H") % 02 === 0){
$response = $eb->postRandom("data.txt");
}

?>

で、うまくいきません。
wiki見ながらやったつもりなんですけど・・・?
Hの使い方間違ってますか?どうすればいいですか??

954名無しさん:2010/10/16(土) 14:55:39
953だけど

if(date("H") == "02"){
にすればいいんだっけ???

955名無しさん:2010/10/16(土) 17:38:39
>>953
wiki見ながらやったつもりということだけど、本当にちゃんと読んだ?
落とし穴に注意って項目をもう一度よく読んでみて、%がどういう意味か調べてみてね

956名無しさん:2010/10/16(土) 18:54:15
>>953
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3php.htm
とか
http://nyx.pu1.net/
でPHPのお勉強もしてね、たぶんその問題はどこか見ればすぐ分かると思う

957名無しさん:2010/10/16(土) 21:59:58
wikiって>>1に載ってる非公式wikiですよね?
ページが無いみたいなんですが…

958名無しさん:2010/10/16(土) 22:42:30
>>957
さんざんアナウンスしているんだけど、非公式wikiてアドレス変わったんだよ
それくらいググるか過去ログ見ような
http://www26.atwiki.jp/easybotter_wiki

959名無しさん:2010/10/17(日) 00:14:26
それ以前に>>3見ればお勉強しなきゃいけない内容わかるんだけどね

960名無しさん:2010/10/17(日) 09:48:15
つまりググるのめんどくさいから直に教えろやってことか
そんな手間をめんどくさがるからいつまで経っても
分からないんじゃないか

質問している方も分からないことが分からないんじゃどうしようもないな

961名無しさん:2010/10/17(日) 14:35:15
953だけど、無事に解決しました!ありがとうございます。

ちなみに957は俺じゃないからな。
お前も調べろ。みんなの言うようにじっくり見て一文字ずつ理解すればわかる。

962名無しさん:2010/10/17(日) 23:25:39
950です。
>>952
どのリンク先なのかよく解りませんでした。
という訳で、今は他のリンク先のPHP入門を読んで勉強中です。
すぐ解らなかったのは残念ですが、いちから勉強するのも楽しいです。


$today = getdate();
$response = $eb->reply(5,"reply_pattern.php","morning".$today['wday'].".php");

ちなみに、こうして曜日ごとに違うphpファイルを読み込ませて簡易リプライにしようと思ったのですが、
reply_pattern.phpにある語句を入力すると「array」とbotがリプライするだけで
停止してしまいました・・・。
morning".$today['wday'].".php内にある語句を入れると普通にリプライしてくれるんですが。

963名無しさん:2010/10/18(月) 00:18:06
>>962
よく見ていないことを吐露しているようなものだね
リンクを張っておいてあげるよ
http://www.php.net/manual/ja/function.date.php

964すーかぷ:2010/10/19(火) 14:14:28
記述ミスなし、説明書通りにやってもできなかったことがあったので記述しておきます。

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /アドレス/EasyBotter.php on line 8

と、表示される方、
php4の状態で動かすとそうなるようです。
私の鯖はヘテムルを使用していたのですが、この状態になりました。

ヘテムルやロリポップなど、ペーパーボーイ系の鯖を使用している方で、php5が出る前から使用している方は、
基本のphpが4のままなので、動作しないみたいですね。
以下の設定で動作しました。
http://heteml.jp/support/manual/php5/

phpファイルの名前をいじるため、内部でのファイル指定が「.php」となっている所もそれぞれ修正しないといけないですので少し面倒ですが、
ファイル名とファイル指定をそれぞれ修正したら動きました。

ロリポップの場合は、鯖全体をphp5にすることもできるようです。
http://lolipop.jp/manual/user/move-php5/#search_word=php5

頑張って下さいv

965名無しさん:2010/10/19(火) 16:08:41
【バージョン】 Ver.2.04
【設置鯖名】 lolipop
【PHPのバージョン】PHP5
【手動】 動かない
【実行】 手動
【実行間隔】 手動
【不明点】

同類のエラーが多く問い合わせられていますが、
記載されている事項を何度確認しても改善されないので質問いたします。


lolipopサーバーにファイルを設置、bot.phpの中身を

<?php
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();
$response = $eb->postRandom("data.txt");
?>

上記記述のみにしてアップロードしましたが以下のエラーが発生します。


object(SimpleXMLElement)#10 (2) {
["error"]=>
string(19) "Incorrect signature"
["request"]=>
string(20) "/statuses/update.xml"
}


consumer_key、consumer_secret、access_token、access_token_secretは
現在の物を記入済み、FTP上のファイルパーミッションは666としています。
また、OAuth設定項目のアプリケーション設定はクライアントに設定をしています。

文字コードについても指定し、アップロード後のファイルを開き、
UTF-8、改行コードはLFになっている事を確認しました。
(使用エディタ:秀丸)

一つ気になるのは、ローカルでdata.txtをUTF-8、LFで保存しても
アップロード後、FTP上から開くと改行コードが「CR+LF」となってしまい、
バイナリデータとして送信すると改善されましたが、何か関係があるのでしょうか。
FTPクライアントはFFFTP(1.97a)です。

966965:2010/10/19(火) 16:10:44
上記の症状は、ブラウザから直接bot.phpへアクセスした際に発生します。
記述が足りませんでした、失礼しました。

967名無しさん:2010/10/20(水) 02:45:48
>>965
テスト的なものを上から順にしてみて
あえてアプリ設定をブラウザにする(動作的には問題ない※EasyBotterアプリと同設定)
指定されたもの「だけ」がパーミッション666、UTF-8かどうかチェック
テラパッドをDLして再度設定をUTF-8にしてみる
「UTF-8N」にしてみる

data.txtには何か記述してるのかな?
@pagesの場合だけどしてない場合はUTF-8に設定してもUTF-8になってないことがある。

968名無しさん:2010/10/20(水) 02:50:40
>>964
揚げ足のようで悪いけどphp4の時点で説明書通りとはいわない気がするけどね…
言えるのはちゃんとPHPバージョンチェックと更新しないとダメってことですな

969名無しさん:2010/10/20(水) 12:48:19
【バージョン】 Ver.2.04
【設置鯖名】 @pages
【PHPのバージョン】
【手動】 動かない
【実行】 GAE-Cron
【実行間隔】 2分間隔
【不明点】
設置まではできました。
けれども、定期的にpostができません。

30分ごとにpostしたいのですが、
if(date("i") % 30 === 0){
$response = $eb->postRandom("data.txt");
}
をbot.phpに入れても2分ごとにpostされたり、数時間何もつぶやかなくなったりします。

リプライは送ったらすぐに返ってきます。

970名無しさん:2010/10/20(水) 13:56:19
>>969

>>955-958 に似たような質問があるよ
せめてこのスレぐらいは目を通してみて欲しい

971名無しさん:2010/10/20(水) 18:47:37
【バージョン】 Ver.2.04
【設置鯖名】 lolipop
【PHPのバージョン】PHP5
【Cron】GAE-Cron
【実行間隔】5分

誤解を招きそうなので実行についてテンプレ項目を一部省略させて頂きました。3ヶ月に渡って問題なく動作していたbotが、最近複数の特定ユーザーからの@に返信しないことに気付き、気になっています。

・「ランダムに反応しないことがある」ではなく「特定IDを無視」です。時間帯、手動/cronや@の数に関係なく、ひたすら特定の相手を無視しています。
・PHPを手動で動かしてみたところ「反応語句がTLにありません」とのこと。特にエラー表示はありませんでした。
・もちろん、相手の方と相互フォロー関係は成立しています
・不具合?の発生している相手は、2名/250followerです。1%未満。
・プログラム本体の改造はしていません

こういうことは起こるものなのでしょうか。もしもこちら側の不具合なら修正したいと思っているのですが……。

972名無しさん:2010/10/20(水) 21:54:50
【バージョン】 Ver.2.04
【設置鯖名】さくら
【PHPのバージョン】PHP 5.2.14
【手動】 ランダムポストのみ動作
【実行】 さくらCRON/手動
【実行間隔】 10分間隔×4つ(それぞれ時間はずらしてある)
【不明点】
ランダムなつぶやきなどはできるのですがリプライに反応することができません
2つのbotをCRON2個ずつで動かしているのですが片方のbotは正常に動作します
しかしもう片方のbotはリプライに反応できない、といった状況です
もしタイムラインに5分(CRONの設定間隔)以内に自分宛の@があった場合手動でbot.phpを叩くと何も表示されないページが、
@が無かった場合"5分以内に受け取った@はないようです。"と表示される状況です
パーミッション、文字コードなどの設定は確認しました

どなたか考えられる原因を教えていただけると幸いです

973名無しさん:2010/10/20(水) 22:05:47
>>972
鯖規約違反
さくらのCRONは1つにつき最短で1時間サイクルです

974972:2010/10/20(水) 22:12:36
>>973
そうだったのですね
知らずご迷惑をおかけしておりました、すみません

しかし、改善するも結局リプライを返してくれない状況です
原因の分かる方すみませんがよろしくお願いします

975名無しさん:2010/10/21(木) 04:02:12
>>974
reply_patternのファイルは間違いないか確認した?
マッチパターンでエラーした場合に真っ白な画面になることがあると、このスレの最初の方で出てた

976名無しさん:2010/10/21(木) 20:58:54
>>974
知らずにってコントロールサーバーのcronの設定の下の
注意事項にちゃんと書いてあるだろ。それを読まずに使うということは
他の共有しているユーザーに迷惑がかかるんだよ。
そんなやつはさくらのcronは使うな

977名無しさん:2010/10/22(金) 11:49:38
【バージョン】 Ver.2.04
【設置鯖名】@pages
【PHPのバージョン】PHP 5.3.1

すいません、つぶやきを設定しているファイル
(デフォルトだとdata.txt)についてなんですが、
phpを使用することは可能でしょうか。

やりたいことは時間や季節にあった内容をつぶやかせるもので
今はそれぞれのtxtを用意してbot.phpの内部でどれを読み込ませるか
判定しています。ただこれだと設定が面倒なので一つのファイルで
やりたいと思い質問させていただきました。

自分でやった限りではphpは読み込めるんですが、
設定はできない(出力させたい文章をprintで出力させても
そのまま表示されるだけでした)ようです。

もしやり方をご存知でしたらご享受ください。
よろしくお願いたします!

978名無しさん:2010/10/22(金) 17:08:30
>>977
過去ログ読んだ?

979名無しさん:2010/10/22(金) 20:46:26
【バージョン】 Ver.2.04beta
【設置鯖名】 ロリポップ
【PHPのバージョン】5.2.6
【手動】 動く
【実行】 GAEcron
【実行間隔】定期ポスト:30分間隔 リプライ:2分
【不明点】
初心者なりにログや非公式wiki、関連しそうなワードをググってみたのですが解決出来ず、質問させてください。

手動では正常に動いています。それを確認した後、30分おきのcronで下のbot.phpを動かし、
ランダムポストとリプライが動くことを確認しました。
$response = $eb->postRandom("data.txt");
$response = $eb->reply(30,"data.txt","reply_pattern.php");

その後、2分おきで同じく動作確認をすると、2分おきにポスト、リプライ出来ているのを確認しました。
しかし、当然このままにすると迷惑botなので、10分未満で検証を終わらせて、
bot.phpを以下のように変更したところ、定期ポストもリプライも動作が不安定になってしまいました。
if(date("i") % 15 == 0){
$response = $eb->postRandom("data.txt");
}
$response = $eb->reply(2,"data.txt","reply_pattern.php");

色々設定を変更してみたり、ソースを見なおしてみたりしましたが、結局どこが悪いのか判らないので、
現在EasyBotter自体を2つ設置し、Aは定期ポストのみ(cronを30分間隔に設定・bot.php内部にif文等はつけていません)、Bはリプライのみ(Aとは別のcronを2分間隔で設置&設定)にしました。
Aの定期ポストは安定して動いていますが、Bのリプライのみのものは返事をしたりしなかったりしています。
ツイッター自体が重かったりなどの理由があるのかもしれませんが、EasyBotter1.42を利用させていただいていた時はここまで返事に抜けがなかったので・・・
もし原因や思い当たる症状がある方がいらっしゃればと思い、投稿させていただきました。

分かりにくかったらスイマセン、よろしくお願い致します。

980名無しさん:2010/10/23(土) 00:55:04
>>979
>>1-3嫁で終了な話なんだけど、本当にこのスレを読んでみた?
> 【実行間隔】定期ポスト:30分間隔 リプライ:2分
って描いてるけど全然動作これに合ってないよね?
wikiの時間分けをそのままコピペしてるっぽいけど、
>>2にある
bot.phpで必要な知識
 ├演算子
 ├比較演算子
 ├条件分岐(if、switch)
 └date関数
を読んで勉強したら分かる、初歩の初歩だよ

981979:2010/10/23(土) 11:25:14
>980さん
丁寧なレスをありがとうございます!

申し訳ありません、979の書き込みで記述間違いをしておりました。
定期ポストを30分間隔、リプライを2分間隔で動かしたいのなら、
if(date("i") % 15 == 0){
$response = $eb->postRandom("data.txt");
}
$response = $eb->reply(2,"data.txt","reply_pattern.php");
ではなくて、
if(date("i") % 30 == 0){
$response = $eb->postRandom("data.txt");
}
$response = $eb->reply(2,"data.txt","reply_pattern.php");
ですよね・・・。

一度はこういう設定で様子をみていたのですが、これを2分間隔のcronで叩くと、
定期ポスト、リプライ共に動作が不安定になってしまいました。

定期ポストに限って言えば、cronが0,2,4,と叩いていれば0分、30分にポスト、
もし1,3,5と叩いてしまっていれば、全くポストをしなくなると思うのですが、
そんな結果にはならず、ポストをしたりしなかったりという状態になってしまいました。

リプライについても、返事をするしないが激しいので(こっちの方が目立って気になるので)
同じ症状が出て、うまく改善出来た方がいらっしゃれば、ヒントでもいただければと・・・。

cronの設定が2分間隔なのが不安定の原因になってる可能性もありますよね;;
分かりにくい投稿となってしまい、すいませんでした。
cronの間隔を伸ばして、様子を見てみたいと思います!

980さんありがとうございました!お返事頂けただけでも「頑張ろう」という気が出てきました!

982名無しさん:2010/10/23(土) 12:46:47
>>981
このスレだけでも何回も既出の質問

>>953-961
>>969-970
あたりに似たような質問が出てるよ

wikiのをそのままコピーしたみたいだけど、wikiが間違っているっぽい?
>>980の言うように、演算子を少し調べてみると答えがすぐに見つかると思う

983982:2010/10/23(土) 12:55:11
ごめん、wikiのことは自分の勘違いでした・・・

984979/981:2010/10/23(土) 18:18:56
>>982-983さん

細かいご指摘・ご指導ありがとうございます!

そのあたり、目が皿になるまで目を通したつもりです。本当に初心者すぎる初心者ですいません・・・。

現在、定期ポストは自分が思うように(設定した時間間隔で)postしてくれています。post抜けもありません。

今後の自分の課題は、2分間隔のcronで
$response = $eb->reply(2,"data.txt","reply_pattern.php");
だけにしたbot.phpを叩いても、返事をしたりしなかったり(現状返事をしない割合が高いです)
という状態から、少しでも返答する割合を少しでも上げられればと思っています。

というか最初からこの「返事をしたり・しなかったり」をどうにかしたかったのですが、
質問の仕方も投稿内容もごちゃごちゃしたり、投稿内容に間違いがあったり・・・ダメですね。
本当に申し訳ありませんでした。

非公式wikiや、色々なサイトなどを良く読んで、頑張りたいと思います。ありがとうございます。

985名無しさん:2010/10/23(土) 20:36:24
>>984
そんなにcronの精度を求めるなら有料cron使ったら?
GAEcronで1度も取りこぼさずちゃんと動いていたかどうか
イライラしていたらキリがないよ

986名無しさん:2010/10/23(土) 21:37:01
>>984
まずは動作ログを継続して取ることをお勧めします。推測だけではデバグはできませんので。
http://twbot.blogspot.com/2010/08/easybotter2.html

更に、BOT宛のmentionsを取得出来ているか、取得出来ていないなら、どこで消えているかを確認するために、

//リプライを取得
$response = $this->getReplies();
$response = $this->getRecentTweets($response, $cron * $replyLoopLimit * 3);
$replies = $this->getRecentTweets($response, $cron);
$replies = $this->selectTweets($replies);
$replies = $this->removeRepliedTweets($replies);

の各行にvar_dumpを入れると、手がかりが得られると思います。

ここをクリアできてたら、次はパターンとマッチングできてるかのチェックですね。

987名無しさん:2010/10/23(土) 22:30:42
【バージョン】EasyBotter2.04beta
【設置鯖名】@pages
【PHPのバージョン】PHP 5.2.13、またはPHP5
【実行】GAE
【手動】動く時と動かない時があります
【不明点など】
手動で動かすと、動く時と動かない時があります。
動かない時は
object(SimpleXMLElement)#10 (2) {
["error"]=>
string(22) "Status is a duplicate."
["request"]=>
string(20) "/statuses/update.xml"
}
と表示されます。
あとdata.txtを全てポストすると手動でも一切動けなくなってしまいます。
ご教授願います

988979/981/984:2010/10/23(土) 22:54:31
>>985さん

ご提案ありがとうございます!
もうちょっと色々つついてみて、GAEcronの動作がpost不調の原因に大きく関わっているようなら、有料cronの導入を検討してみたいと思います。ありがとうございます。ある意味目からウロコでした!!

蛇足ですが、このスレッドで顔文字を付けて質問されてる方に「質問するのに顔文字つけて、聞く気あるの?」というレスがついていたので、真面目に文章を考え投稿したつもりですが
それが逆に、自分がイライラしているように文章から感じてしまったとしたら、申し訳ありません。
イライラしてません&むしろ楽しんでおります^^ ご心配ありがとうございます!

ここまで気になっている理由としては、EasyBotter ver 1.42から利用させていただいてまして・・(本当にお世話になります!phaさん&BBSやwikiで発言されてる方、自分の開発を公開されてる方みなさんに!)
その頃から同じ環境(ロリポサーバ&GAEcron)で使っていて、十中八九リプを返していたのに、2.04に変更してから2割程度しか返信に成功してないので、その差が気になっている次第です。
また、初心者で何をどうしたらいいのかさっぱり判らないからこそ、余計に気になってしまうんだと思います・・・。


>>986さん

ご教授ありがとうございます!

ログを・・・結構簡単に取ることが出来るんですね。
これなら自分でもログ取りまでは、出来る気がします。(原因を見つけることが出来るのか、対処出来るのかは謎ですが・・・)
ありがとうございます!是非やってみたいです。
「var_dump??」という状態ですが、調べて、やってみて、原因を見つけることが出来ると嬉しいな・・・。

「簡単じゃないtwitterbot」さんの所は自分には高度すぎて・・・一部しか読んでいませんでした。(APIの取得先URLの変更とか) でも何かしら解決するためのヒントがあるかもしれませんよね。
時間があるときに少しづつ目を通してみようと思います!

ありがとうございます^^!!

989名無しさん:2010/10/24(日) 05:10:20
鯖の時間が合ってないんじゃないのw

990名無しさん:2010/10/24(日) 06:35:22
>>987
散々既出なんだが、Twitterにおける「Status is a duplicate.」の意味わかってる?
わかってないならこのスレか過去スレ検索

>>988
こちらもCRONのズレ回避で散々既出だが
演算子%を使わず00分・01分・30分・31分の実行に指定してみたら?
2分間隔で叩いてるならCRONが1分ズレても動く

991979/981/984/988:2010/10/24(日) 11:11:43
>>989さん

ご指摘ありがとうございます!

リプの時間に幅を持たせて、様子をみたりしたこともありますが、返答率がアップするという感触は得られませんでした;;
cronで2分間隔で叩いて、bot.phpは、以下の記述で・・・という感じで。
$response = $eb->reply(3,"data.txt","reply_pattern.php");

もうちょっと気長に見てみようかな? と、
現在GAEcronを4分間隔にして、bot.phpの記述は以下のようにしています。
$response = $eb->reply(5,"data.txt","reply_pattern.php");

こうすることでサーバーの時間の差で出る問題が少しでも回避・改善できるでしょうか??初心者なりの苦肉の策なのですが。



>>990さん

ご指摘・ご指導ありがとうございます!

boy.phpを下記のようにして、2分間隔のcronで叩くのを試してみたことがあるのですが、定期ランダムpostもリプの返事もしてくれませんでした;;
if(date("i") == 0 || date("i") == 1 || date("i") == 30 || date("i") == 31){
$response = $eb->postRandom("data.txt");
}
$response = $eb->reply(2,"data.txt","reply_pattern.php");


ただcronスレを見ると「GAEcron/JAVA自体がとても不安定」と、みなさんおっしゃっているようなので、もう少し長い目で結果を見守ってみたいと思います。

レスをありがとうございます^^!

992名無しさん:2010/10/24(日) 13:58:04
【バージョン】 Ver.2.04
【設置鯖名】 @pages
【PHPのバージョン】PHP-5.2.6
【手動】 動く
【実行】 GAE-Cron
【実行間隔】 40分間隔
【不明点】
どうも自分の発言にTL反応するようで、原因がわからず困っています。
非公式wikiにあった特定のアカウントを制限するプログラムをいれる事も試しましたが、こちらを記述するとエラーが出てしまいます。
現在Easybotter.phpは初期の状態に戻しているので

$replyName = (string)$reply->user->screen_name;
if($this->_screen_name == $replyName){
continue;
}

で自分の発言を除外していると思われるのですが、思い当たる原因があれば教えていただけませんか?

993名無しさん:2010/10/24(日) 22:36:51
botに対して、@には反応しつつTL反応はしない、という書き方の質問が出ていましたが

//■■botを除外■■
if($this->_screen_name == $replyName || preg_match("@bot@i",$replyName)){

これを、更に「但し@の場合は除く」と付け足せばよいとは分かるんですが
具体的にどう書くかでずっと躓いています
ご教授いただけませんでしょうか?

994名無しさん:2010/10/24(日) 23:33:13
【バージョン】 Ver.2.04
【設置鯖名】ステップ
【PHPのバージョン】PHP5
【手動】 動く
【実行】 GAE
【実行間隔】 2分間隔
【不明点】

wikiの通りに特定アカウントには別のリプライパターンを読み込ませるを試したのですが
指定した自分のアカウントからリプを送って試してみた結果
「2分以内のタイムラインに反応する単語がないようです。」
と表示されてしまいます


//リプライを作る
function makeReplyTweets($replies, $replyFile, $replyPatternFile){
if(empty($this->_replyPatternData[$replyPatternFile]) && !empty($replyPatternFile)){
$org_repfile = $replyPatternFile;//デフォルトのファイル名を保管
$this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile);
}
$replyTweets = array();
foreach($replies as $reply){
$status = "";
//リプライパターンと照合
if(!empty($this->_replyPatternData[$replyPatternFile])){

//■■特定の人には別パターン■■
$userName = (string)$reply->user->screen_name;
switch(true){
case $userName == "abcd"://abcdというアカウント名に対して
$replyPatternFile = "xxx_pattern.php";//xxx_pattern.phpを適用する
$this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile);
break;
default://それ以外
$replyPatternFile = $org_repfile; //デフォルトのパターンファイル名
}
foreach($this->_replyPatternData[$replyPatternFile] as $pattern => $res){


上記の記述に何かミスはございますでしょうか?
他の箇所が間違っているのではとも思いEasybotter.phpを初期のまま使ってみましたが同様でした
ご教授頂ければ幸いです

995名無しさん:2010/10/24(日) 23:49:52
>>994
「分以内のタイムラインに反応する単語がないようです。」
が表示されるのは、タイムラインに反応する関数(replyTimeline関数)のようです。
質問には「自分のアカウントからリプを送って試し」とあるので、やりたいこととテストの仕方が合っていないのでは?

996名無しさん:2010/10/25(月) 03:05:09
TL反応の不調を訴えてる人は検索不足では?
>>874で一つの原因が提示されてますよ

997788:2010/10/26(火) 04:30:05
PHPスレに書き込もうか迷ったのですが、未熟なのでやはりこちらに失礼します。
「数種の定型句+postRotation("data.txt")」のような動作をさせたいと思っています。

定型句A:data.txt内の1行目
定型句B:data.txt内の2行目
定型句C:data.txt内の3行目
定型句A:data.txt内の4行目
定型句B:data.txt内の5行目...

といった具合です。自分なりに検索して天気予報機能や>>939など近いかと思ったのですが、
いまいち策が浮かびません。ヒントだけでもご教授願えないでしょうか。

998名無しさん:2010/10/26(火) 08:27:08
>>997
postRotation関数内の
$response = $this->setUpdate(array("status"=>$status));
の直前に
$this->_tweetData[$file] = $this->readDataFile('abc.txt');
$status = $this->_tweetData['abc.txt'][0].':'.$status;
$this->rotateData('abc.txt');
では?
テストしてませんが

999997:2010/10/26(火) 17:24:20
すみません、名前欄に以前のものが残っていました。

>>998
回答ありがとうございます。
書き込んだ後に、postRotation関数をどうにかするのでは、と思い至り、
$response = $this->setUpdate(array("status"=>'定型句:'.$status));
など試してみたのですが、これでは1種類しか読み込めないな、と行き詰っていました。

教えていただいたコードを組み込んで先ほどテストしてみたところ、
「:data.txt内の1行目」というように、abc.txtを読み込まずpostしました。
「:」が反映されているので、コード自体が無視されているのではないと思います。

スレも終わりですが、引き続きお世話になる場合、初心者質問スレ3へ行けば良いでしょうか。
EasyBotter.phpの修正にあたるので、PHPスレへ移動した方が良いでしょうか。

1000名無しさん:2010/10/26(火) 20:29:04
>>999
ゴメンなさい まちがえました
$this->_tweetData['abc.txt'] = $this->readDataFile('abc.txt');
$status = $this->_tweetData['abc.txt'][0].':'.$status;
$this->rotateData('abc.txt');
こっちはテストしました。さっき




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