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

Twitter Bot初心者質問スレ

1名無しさん:2010/02/16(火) 12:28:55
どんな初心者レベルの質問でも質問していいスレッドです。
内容もTwitter Botに関するものなら何でもありです。phaさんのスクリプト以外の質問もOKです。
でも返事が返ってくるかどうかはたまたま分かる人がいるかどうかなので、返事が返ってこなくても泣かない。
返答してくれた人にはお礼をね。

793age:2010/04/25(日) 00:07:38
【バージョン】 EasyBotter2.03beta
【設置鯖名】 @pages
【PHPのバージョン】 5.2.6
【実行】 GAE-Cron

リプライとTL拾うのと自動フォロー返し&フォローの際
メッセージ送るとかは成功しています。
3分間隔で実行してましたが
1時間おきに定期ポストをすべく
wikiや、ここの過去ログ見て、いろいろ試しましたが
どうしても、定期ポストができません。

if(date("i") == 0){
$response = $eb->postRotation("teikidata.txt");
}
にして、2分間隔で実行するように変更したのですが
ポストしません。
if(date("i") == "0"){
if(date("i") == 0){
if(date("i") % 30 === 0){ ←試しに
どれもダメでした。
どこがどうダメなんでしょうか?
ご指導お願いします。

794age:2010/04/25(日) 00:27:41
えっと、他との絡みがおかしいのでしょうか?
//=============================
//EasyBotterを呼び出します
//=============================
require_once("EasyBotter.php");
$eb = new EasyBotter();


//=============================
//botの動作をここに書いてください
//先頭に//がある行はコメント扱いなので実行しません。実行したい行の頭の//を削除してください。
//=============================
$response = $eb->autoFollow();
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(2,"data.txt","2reply_pattern.php");
$response = $eb->replyTimeline(2,"reply_pattern.php");
if(date("i") == 0){
$response = $eb->postRotation("teikidata.txt");
}

/*

よろしくお願いします。

795名無しさん:2010/04/25(日) 01:06:05
>>793
cronスレとかで既出の情報だけどGAE-CRONは実行時間がジャストじゃないことがあるらしい
if(date("i") >= 0 && date("i") < 3){
これでテストしてみたらどうかな

796793:2010/04/25(日) 01:11:54
>>795様、ありがとうございます。
早速テストしてみます。
そして今
User is over daily status update limit.なので、
明朝確認してみます。

797名無しさん:2010/04/25(日) 04:04:40
>>795
if(date("i") >= 0 && date("i") < 3){
より
if(date("i") < 3){
の方がスマートだね


たまにツイート重複にかかってる人いるけど、テスト中はツイート削除しちゃえばいいよ
一度削除すれば重複にならないから

798793:2010/04/25(日) 11:08:08
>>795
>>797
いろいろ教えていただきありがとうございました。
ポストできるようになりました。
ただ、同じ台詞ばかり1時間おきにポストしてるようなので
336も台詞用意してるのに?!
また、調べてみます。

799名無しさん:2010/04/25(日) 11:23:55
質問させていただきます。

フォロワーAが「ひらけ」、フォロワーBが「ゴマ」とTL上で呟いた際に、
A,Bの両名に「@Aと@Bが扉を開きました」のようなリプライを飛ばしたいのです。
これってeasybotterをいじって出きるようなものなんでしょうか?

800771:2010/04/25(日) 18:33:39
771です。
>>772
>>773
遅くなりましたがご回答ありがとうございました。
twitterの重さが原因だったようです。解決いたしました。
ありがとうございました。

801名無しさん:2010/04/25(日) 23:51:00
初心者ながら色々調べてbotを作ろうとしている者です。

時間帯別で発言させる設定はなんとかできたのですが
日曜のみ発言内容を変えたいのですが
どのように組み入れるべきでしょうか?
PHPの参考サイトを見ても、よく理解できなくて;

お手数ですが、ご教授ください。

802名無しさん:2010/04/26(月) 03:26:19
>Twitter APIのBASIC認証は2010年6月に廃止予定

803名無しさん:2010/04/26(月) 08:46:54
>>801
時間別が出来てるみたいなのでヒントを

曜日を取得するのはdate("w")。日曜が0〜土曜が6

804名無しさん:2010/04/26(月) 08:57:59
>>798
rotationで実行してるのなら、データファイルのパーミッションを666なり606なりに変えてみて

805名無しさん:2010/04/26(月) 08:59:19
というかねー、bot.phpの時間分岐で云々言ってる人たちー
date関数や演算子についての解説サイトがwikiからリンク貼ってあるんだし、それくらい確認しようなー

806うら:2010/04/26(月) 13:10:26
>>791
つぶやきデータファイルについて、 data.txt から data.php に変更していて、
かつ postRandom() 、 postRotation() 、 reply() のいずれかで初期値を省略していますね。

data.txt は省略時の初期値ですので、存在しないとエラーになりますね。
省略をやめるか、 data.txt を空のファイルにすると読み込みエラーはなくなります。

807うら:2010/04/26(月) 13:18:00
>>792
>>575や wiki チェックされました?

bot.php より
> //@で話しかけられたときにリプライしたい
> $response = $eb->reply(cronで実行する間隔(単位:分), "データを書き込んだ〜", "パターン反応〜");
>                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> //タイムラインの単語に反応してリプライしたい
> $response = $eb->replyTimeline(cronで実行する間隔(単位:分),"パターン反応〜");
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

808うら:2010/04/26(月) 13:38:02
>>799
できます。ただしもちろん、特別処理をすればです。
要改造。初心者スレの範囲外です。

そうですねえ。
TL 取得時に別途キーワードチェックして、照合時に外部ファイルに touch() 。
相方のキーワードが来たら、外部ファイルを見て、 OK ならツイート、かな。
キーワードを『』で囲むとかすれば、正規表現で判定しやすいでしょうね。
関数化した際の値渡しもできますし。

809793:2010/04/26(月) 15:03:54
やっぱりGAE-CRONは実行時間がジャストじゃないことがあるらしいのか
1時間おきにPostできたり、まったくしなかったり。
調子が良いと
if(date("i") >= 0 && date("i") < 3){
だと、1時間ごとにダブルPOSTしました。(0分ジャストと1分)


if(date("i") < 3){
に変更したらタイミング悪かったのか?POSTしませんでした。
GAE-CRONのせいでしょうか?

810名無しさん:2010/04/26(月) 18:07:26
GAEがずれてる場合もあるけど
CRONとサーバーの時間がずれてる場合もあるので
できれば生ログを見てGAEの接続タイムを調べた方がいいよ

811名無しさん:2010/04/26(月) 18:09:37
>>809
if(date("i") >= 0 && date("i") < 3){
if(date("i") < 3){
この二つはどちらも同じ意味だよ
だから、ダブルPOSTしたりPOSTしなかったりってのはこのifが原因ではなく
CRON・鯖のどちらか、または両方がいけなかったんじゃないのかね

812nns:2010/04/26(月) 19:21:17
そしてtw.txtとreply_pattern.phpとlog.datのパーミッションを666に設定してください。

と書いてあるのですが、
log.datがありません;
どこにあるんでしょうか??

813793:2010/04/27(火) 00:54:25
>>810
>>811
ありがとうございます。
CRONとサーバーの時間がずれてる場合ですか?
どうやって調べて
どうやって、調節するのかわからないので
ちょっと、ぐぐってみます。
いつも助言ありがとうございます。

814名無しさん:2010/04/27(火) 09:58:19
>>812
>>734-735

815mimimi:2010/04/27(火) 10:00:01
下記のエラーが出ました。

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

サーバーはヘテムルです。

検索しましたが対処方法がわからず…お知恵を貸してください><

816うら:2010/04/27(火) 12:23:38
>>812
>>737 も追加で。

817うら:2010/04/27(火) 12:57:35
>>815
>>575や wiki はチェックされました?

syntax error は php 構文エラーです。
"}" がおかしい、と指摘があります。
指定している bot.php 、 setting.php 、 reply_pattern.php をチェックください。

818mimimi:2010/04/27(火) 13:36:10
うらさんありがとうございます。
php5ではなかったようで、5にしたら動きました^^

また、bot.phpの設定を下記にしてるのですが

$response = $eb->autoFollow();
$response = $eb->reply(5,"data.txt","reply_pattern.php");
if(rand(0,4) == 0){
$response = $eb->postRandom("data.txt");
}
if(date("n") == 5 && date("j") == 5){
$response = $eb->postRandom("birthday.txt");
}else{
$response = $eb->postRandom("data.txt");
}

5回に1回ではなく今のところ毎回書いてるのですが原因は何でしょうか?
もしお分かりになられましたらご回答をお願いいたします。

819名無しさん:2010/04/27(火) 14:22:22
こちらを参考に、何とか設置。
定期ポスト、リプライまではできています。
Wikiの
「特定のアカウントに対しては、別のリプライパターンを読み込ませたい」を
加えようと思い、EasyBotter.phpに追記しましたが、リプライが返って来ません。
ソースは以下の通りです。

//リプライパターンと照合
if(!empty($this->_replyPatternData[$replyPatternFile])){
//■■特定の人には別パターン■■
$userName = (string)$reply->user->screen_name;switch($userName){
case "****"://****というアカウント名に対して
$replyPatternFile = "xxx_pattern.php";//xxx_pattern.phpを適用する
$this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile);
break;
}
foreach($this->_replyPatternData[$replyPatternFile] as $pattern => $res){

どこかおかしいでしょうか
ご教授願います

820名無しさん:2010/04/27(火) 14:56:17
【バージョン】 EasyBotter2.04beta
【設置鯖名】 @pages
【PHPのバージョン】 5
【実行】 GAE
【手動】 動く

data.txtの内容が200行くらいあるんですが、
こういう場合分散させたほうがいいんでしょうか?

821名無しさん:2010/04/27(火) 15:40:43
>>818
randはあくまでランダムですので、連続で外れる場合も有れば当たる場合もあります。

>>819
>>751-755

822819:2010/04/27(火) 17:16:23
>>821
失礼しました;
同じ内容があったのですね
舐めるようにここを見たつもりでしたのに、お恥ずかしいです
ご親切にありがとうございました
もう一度確認してみます

823名無し:2010/04/27(火) 21:42:49
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/sites/lolipop.jp/users/サイトアドレス/web/al_bot/EasyBotter.php on line 8

と出てしまいます。
ここで質問されている方もいらっしゃったので、replyの構文も、全部チェックしたのですが
全角を使ったものや、閉じ忘れも何度確認しても見つかりませんでした。
初心者は最低ラインで始めると良いと書いていたので
dateだけを読み込む形にもしてみたのですが、変わらず同じエラー文が出ます。
この表示だと、構文エラー以外には有り得ないのでしょうか?
何時間もあれこれ読んでいるのですがさっぱりわからず………。
ご伝授いただきたいです……!

824名無しさん:2010/04/28(水) 01:36:16
>>823
>>575のwikiの通りにやってる?
やってないならwikiにある通りにやってみて

825823:2010/04/28(水) 02:28:43
>>824
別窓で開いて、平行して見ながらやりました…。
自分じゃ気付かない何かが違うのかもしれないです…。
OAuth認証がうまくいってない、という可能性はないのでしょうか?

テンプレ通りにやれば出来そうだと思ったんですが…難しいです。
またゆっくり頑張ってみます。

また現在ボットジェネレーターを使用しているのですが
こちらと併用して自サーバでも動かす、という事は出来るのでしょうか?

例:
リプライは自サーバ、時間を指定してのTLはボットジェネレーター使用、等

826名無しさん:2010/04/28(水) 03:48:31
>>825
}が足りないってエラーなんだから、データファイルに何かしら不足があるか、余計なものがついてるか
そのくらいだと思うんだがねえ……勿論、データファイルはDLしたまま弄らずにアップしてテストしてるんでしょ?

併用はできるよ、via〜の部分が違うだけ

827うら:2010/04/28(水) 13:18:47
>>818
っと、postRandom() が重複してますよ。
誕生日判定の例外時もにツイートする設定になってますので、
叩かれるたびにツイートしてしまいます。
} else {
のところを、
} else if(rand(0,4) == 0) {
にして、前段のを取ったらよろしいかと。

>>823
php5 ではないという可能性は?
>>815,818 参照
あと>>575の質問テンプレを使ってもらえるとより状況がわかります。

828名無しさん:2010/04/28(水) 15:46:23
こんにちは。
botを設置して快調に動いているのですが、
リプしても、リプが返ってこない時が多いのですが、
これはやはりサーバーの問題でしょうか?

【cron】GAE
【鯖】有料鯖
【php】5

829828:2010/04/28(水) 15:56:42
追記失礼

EasyBotter 最新版で文字コードもUTF-8N LFにしてあります。
リプが返る人と返らない人がいます。

830793:2010/04/28(水) 16:08:25
たびたび質問すみません。
1時間おきのランダムポストが
2時間おきとか5時間おきになります。
Google app engineを見ると
15 secs late Success だったり、27secs late Successです。

2分おきに動かしてたのですが
3分おきに変更してみました(あまり関係無いのだろうけど)

それで
3分おきでも
if(date("i") >= 0 && date("i") < 3){
if(date("i") < 3){
は、同じでいいでしょうか?

何か、対処方法とかありましたら、助言お願いします。

831793:2010/04/28(水) 20:27:35
すみません、2分おきだからこそ
if(date("i") >= 0 && date("i") < 3){
if(date("i") < 3){
ですね。

板汚してすみません。

832名無しさん:2010/04/28(水) 21:59:39
>>831
if(date("i") >= 0 && date("i") < 3){ ←0分以上かつ3分未満=0・1・2分
if(date("i") < 3){ ←3分未満=0・1・2分

3分以上の間隔のCRONでないとダメだよ
0分のジャストタイムから2分間隔だと0分と2分で実行されちゃうじゃない

833831:2010/04/28(水) 22:11:38
>>832
え・・・そうなんですか?
ていうか、もう、2分間隔でも3分間隔でも
POSTしないんで、迷路みたいです;;

0分だと、混雑してるとかでしょうか?

834831:2010/04/28(水) 22:23:35
すみません、30分おきにして
ま、最悪、1時間に1回POSTしてくれたらいいなとか

if(date("i") % 30 < 33 === 0 && date("i") < 3){

これは、おかしいですか?

835名無しさん:2010/04/28(水) 23:25:53
>>834
date関数と演算子と比較演算子の勉強をしてください、>>575を参考に
すごくおかしい

836れお:2010/04/29(木) 01:40:04
失礼ます・・・!
TL反応さえたいのですが、どうしても出来ません。
ただいま手動で行っているのですが、bot.phpを叩いた時にどうしても下記の表示がでてしまいます。


Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/re1869/public_html/twitbot/EasyBotter.php on line 279

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/re1869/public_html/twitbot/EasyBotter.php on line 279

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/re1869/public_html/twitbot/EasyBotter.php on line 279

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 13 in /usr/local/www/htdocs/re1869/public_html/twitbot/EasyBotter.php on line 279

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in /usr/local/www/htdocs/re1869/public_html/twitbot/EasyBotter.php on line 279


EasyBotter.phpが原因なのかと思ったのですが、279行は一切編集していない状態です。

因みに、
if(preg_match("@".$pattern."@u",$text, $matches) === 1 && !preg_match("/\@/i",$text)){
が279行に当たります。

使用サーバーは@pages
EasyBotter2.04beta
を使わせて頂いております。
他、定期ポスト、リプライは問題なく稼動しております。

どなたか、宜しくお願い致します。

837名無しさん:2010/04/29(木) 04:21:27
なんか最近エラー多い気がする
Twitterが重いからかな

838のあ:2010/04/29(木) 11:48:22
初めまして
【バージョン】2.04 beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE-cron
【手動】 動く
【不明点など】自動ポストしない
一昨日初めてbotを作成したんですけど、自動ポストをしてくれません。
手動ではポスト成功します。あとGAEで動作確認をすると
「on time Success 」と出ますが、やっぱり自動でポストしません。
このスレやcronのスレ見てもいまいち分からなくて…
http://ko-lab.net/twitter/google-app-enginegae%E3%81%A7cron%E5%8B%95%E3%81%8B%E3%81%99%E3%82%84%E3%82%8A%E6%96%B9%E3%82%92%E3%82%86%E3%81%A8%E3%82%8A%E5%90%91%E3%81%91%E3%81%AB%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E3%81%BF/
のページを参考にして全部やったんですけどあり、足りないものとかあるんでしょうか?
特にエラーメッセージなどは見ていません。
アドバイスよろしくお願いします

839のあ:2010/04/29(木) 13:19:33
>>838です
適当にやり直したら自動ポストできました。
失礼しました。

840のあ:2010/04/29(木) 17:08:56
【バージョン】2.04 beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE-cron
【手動】 動く
【不明点など】
>>838です。何度もすみません
前の問題は解決して、自動ポストは出来るようになったんですけど
自動リプライができません。
手動だとリプライできるんですけど…
いろいろ探してても良く分かりませんでした。
何回かファイルも書き換えたりしてます。phaさんの使ったり、wiki参考にしたりしました。
GAEの動作確認もsuccessのままです。自動リプライが出来ない原因のアドバイスお願いします。
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");
$response = $eb->autoFollow();
?>

841名無しさん:2010/04/30(金) 10:15:59
正規表現についてなのですが、()の入れ子って可能でしょうか?
例えば、
"((おはよ|オハヨ).?|お早う)(ございます|ゴザイマス)?"

「オハヨ」にも「おはよう」にも「お早うゴザイマス」にも対応できますか?
正規表現の解説サイトとかも見てみたのですが入れ子については
よくわからなかったので、よろしくお願いします。

842うら:2010/04/30(金) 12:37:08
>>841
できますよ。

あいさつについては、うらはこうしてます。
> お(早|はよ|はや)|オハヨ|グ(ッ|ン)(.*)モーニン

843うら:2010/04/30(金) 12:48:15
>>828
それだけでは何ともいえません。サーバの問題かと聞きながら、鯖名もあげないのでは。
リプライが成功する場合もあることから、リプライパターンのエラーとも推測できますが。

>>836
その279行目は、リプライパターンを検証している処理です。
そこでエラーが検出されるということは?

>>840
その reply() で指定している「cronで実行する間隔」と、実際の cron 間隔とは同じですか?

844うら:2010/04/30(金) 13:04:32
>>841
ついでに。
テキストエディタに、正規表現で検索できるものがあります。
鯖に上げる前に、これでちゃんと引っかかるかテストしてみるのもありです。

845841:2010/04/30(金) 14:17:52
>>844
どうもありがとうございます。
事前にローカルで確認できるならそれが一番いいので
よさそうなエディタ探してみることにします。

846のあ:2010/04/30(金) 22:55:49
>>843
replyは2分で、cronは5分にしてました。
今どっちも5分に直したのでこれで様子を見たいと思います。
アドバイス本当にありがとうございます!

847名無しさん:2010/05/01(土) 02:35:49
失礼します
どなたかご教授いただけたらなと思います><

先ほどリプライ・TLに反応するパターンを書きなおして更新したところ
なぜか急にTL(に反応語句がある場合)に対するリプライと
通常ポストを2重ポストするようになってしまいました
bot.phpには全く触っていないのですが;
先ほど更新するまでは普通に動いていました

ざっとifやbot.php 二重で検索してみたのですが見当たらず
見落としている可能性が高いので、参考になる記事でも教えていただけたら幸いです…;

848名無しさん:2010/05/01(土) 10:12:36
はじめまして。
bot作成でいつも参考とさせていただいております。

【バージョン】Easybotter 2.03beta
【設置鯖名】さくら
【実行】GAE-Cron
【不明点など】
0〜9の数字1文字のみのリプが来た時に特殊な返信が出来たらいいなと思って数字1文字の$dataを追加したのですが、まったく当て嵌まらない時にもそこを通過してしまうようになってしまいました。

$data = array(
//「会話終了」を含む発言を受け取るとリプライを返さなくするサンプルです
"会話終了"=> array(
"[[END]]",
),
"[00]"=> array(
"0を受け取りました",
),
"[11]"=> array(
"1を受け取りました",
),
"[99]"=> array(
"9を受け取りました",
),
);

具体的に言うと、これでbotに「ばーか」と言うと「1を受け取りました」と返ってきます。
これは正規表現がおかしいのでしょうか。でもなんで1・・・
素人丸出しな質問で申し訳ないのですが、ご教授いただけないでしょうかorz

849名無しさん:2010/05/01(土) 10:23:44
848です。
先程はくだらない質問をしてしまい申し訳ありませんでした。
自己解決いたしました。
botのIDに数字が入っているのが原因じゃないかと思われます。

ありがとうございましたorz

850れお:2010/05/01(土) 11:19:37
>>843
ありがとうございます。
ここでエラーが検出されるというのは、もしやパターンを記入したファイルの方がおかしいのでしょうか?
見直してみることに致します。

851うら:2010/05/01(土) 13:14:39
>>847
>>575のチェックや wiki はご覧になりました?
状況がよく分かりませんので、テンプレを使って下さい。

なお、 TL リプライとランダムポストが同時に動く場合、連続投稿は仕様通りです。

852名無しさん:2010/05/01(土) 13:23:33
>>848
2.04を使うことで解決すると思われます

修飾子がないのが原因かと

853うら:2010/05/01(土) 13:30:16
>>848
おまちなさいww

"^\@userID ([\d0-9])$"=> array(
"$1を受け取りました。",
),

とすればいいのです。しかも定義1つですみます。(おそらく動くと思うのですが)
要は、 @userID で始まり、半角スペース、最後が0〜9または0〜9の1文字にマッチします。
で、() 内の文字を $1 で受け取ることができます。

854さつき:2010/05/01(土) 16:26:06
すみません、ちょっと質問させてください。

【使用鯖】@PAGES
【cron】GAE
【バージョン】EasyBotter2.04beta

@で送るツイートに反応してくれません。気まぐれのようにTLに反応します。
とりあえず設置は出来ましたし定期POSTもしてくれるのですが、それ以外をしてくれない気まぐれbotが出来てしまいました。
それから@で送らないと反応しないツイートのパターンもreply_pattern.phpに入れていいのでしょうか?

さらに時折二重投稿をしてしまいます。
dataはtxtの拡張子を使用しているのですが、この二重投稿も解決したいと思っています。

設置の手順は
http://pha22.net/twitterbot/
http://www.sdn-project.net/labo/oauth.html
http://ko-lab.net/(Google App Engine(GAE)でcron動かすやり方をゆとり向けにまとめてみた)
を参考にしました。現在も動いています。
cronの設定に関しても質問したいのですが、とりあえずは@でリプしてくれない、気まぐれにTLに反応する、@で特定の言葉に反応して欲しい。
この3つについてわかる方がいらしたらご教授お願いしたいと思います。

ちなみに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");

と設定しています。

855名無しさん:2010/05/01(土) 16:30:09
したらばのみなさん初めまして!
きょうへいといいます。21歳です。
キョウヘイザワールドというホームページで イラスト・漫画・日記等を更新中のKyoHeyです。
ゲームのグラフィックデザイナーを目指しております。
自分の作品についてのつぶやきはもちろん、ゲームが大好きなので、ゲームの最新情報などなどもつぶやいちゃいます。
ファンクラブに入ってくれた方は
KyoHeyイラストの描き方を紹介しちゃうよ?
スカウトお待ちしております。
公式ページttp://homepage2.nifty.com/A-KU/


人気投票、掲示板に一言もらえるとがんばれます><
一応プロとしてやっていきたいと考えているんですけど、評価をしていただきたいです!><

856名無しさん:2010/05/01(土) 23:38:01
TLにも@にもちゃんと反応して完璧だ!と思ったのですが
「ランダムPOSTを●分おき、リプライを▲分おきにしたい!」がうまくいかないみたいで
cronの更新毎にツイートしてしまいます

【バージョン】2.04 beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE-cron
【手動】 動く
【不明点など】
cronの間隔を2分ごとにすると2分毎に発言してしまいます。
なにか書き方を間違えているのでしょうか・・・

<?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();
$response = $eb->replyTimeline(2,"tl_reply_pattern.php");

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

教えてくださると嬉しいです。

857名無しさん:2010/05/02(日) 00:47:23
>>856
以下の「★」部分の行を削除すればいいんじゃないかな。

<?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();
$response = $eb->replyTimeline(2,"tl_reply_pattern.php");

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

自分も設置当初まったく同じ状況になりすごく困ったのでw
もしこれで直れば嬉しいです。

858名無しさん:2010/05/02(日) 06:27:13
>>857
おおおお・・・!!!
そうか!本当だ!なぜ気付かなかった私
正常に30分置きにツイートするようになりましたありがとうございます!!助かりました!
これでbotの基盤完成ですやったー!

859名無しさん:2010/05/02(日) 11:10:45
>>852 >>853
848です。
おおお…ご丁寧にありがとうございますっ!
早速バージョンを2.04にして853さんの方法を試してみたいと思います。

本当にありがとうございました!

860うら:2010/05/02(日) 13:11:24
>>854
リプライの方は、cron 間隔と関係していると思われます。
このスレをたどれば、解法が見えてくると思われます。

>>575の wiki にもありますが、いきなり全機能を使うのではなく、
動くところから1つずつ機能を追加していきましょう。
そうでないと、何が原因で動かないのか分からなくなります。

861さつき:2010/05/02(日) 13:16:11
>>854です
パーミッションの設定を忘れていただけでした;;

>>860うら様
ありがとうございました、自己解決できました

862うら:2010/05/02(日) 13:36:27
>>861
動きましたか。それは良かったです。

ところで、 bot.php の機能指定ですが、>>854の通りで大丈夫ですか?
使うデータファイルは、別にした方が良いのではと思います。
まあ、運用次第ではありますが。ご検討下さいませ。

863さつき:2010/05/02(日) 15:19:54
>>854>>862です

>>862うら様bot.phpですが、>>854のままでは駄目でした。
>>857さんの呼び出し方をコピペして指示通りにしたら動きました。
それからTLと@のリプライを別のデータに分けました今のところ問題なく動いています。
本当にありがとうございました

864名無しさん:2010/05/04(火) 15:06:51
【バージョン】2.04 beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【実行】 GAE-cron
・今まで正常に30分に1回喋ってた
・reply_pattern.phpはいじったけどbot.phpには触ってない
・でも全く動かないわけじゃなくて数時間に1回くらいツイートしてる
・TL、@には反応する
これってcronが不調ってことなのですかね?
でもTLと@には反応するのは・・・うーん・・・

865名無しさん:2010/05/04(火) 15:50:49
今日はtwitterが重いのかなんなのか
うちのbotも毎回は投稿できてない感じ。
ログ確認したらこの文章を投稿しましたと書き込まれてるけど
実際には投稿出来てないという…

866名無しさん:2010/05/04(火) 16:29:02
GW入ってからTwitterがいつも以上に重いので連休明けまで様子見した方が良いと思うよ
Twitter閲覧ソフトもエラーで読みこめないことが多いし

867864:2010/05/04(火) 16:38:44
>>865>>866
あ、そうなのか それを聞いて安心しましたありがとう
GWが終わるのを待つことにします

868名無しさん:2010/05/04(火) 23:42:28
初めまして。bot作成については本当に初心者です。

テストを兼ねて、ファイルはそのまま中身を弄らないものをそのまま自分のサーバーにアップしました。OAuth認証用のキーも組み込み、
FTPにアップロードした際パーミッションも変えました。

そして、最終段階でブラウザに「Twitterへのpostに成功しました。」のメッセージが出ません。
文字コードや改行も守ったのですが、後、考えられるミスは何でしょうか。
本当にすみません。お願い致します。

869名無しさん:2010/05/05(水) 01:08:53
>>868
まずはテンプレを使うことから始めようか
手動でなったのかどうかも書いてくれないと
どんなミスでしょうか?と聞かれても分からないよ

870名無しさん:2010/05/05(水) 03:36:30
はじめまして。昨日よりbot作りを始めた初心者です
何とか手動でのテストを終え、cronを設定すべくGAEに登録しようとしたのですが、携帯アドレスを入力する画面から先に進めません
なぜか自分のドメインを入力しても
There were errors:
* Mobile Number or Username
とエラーになってしまいます
間違いなく自分が使っているアドレスですし、キャリアの選択も間違っていません
botの動作についての質問ではなく申し訳ありません。この場合はもうどうしようもないのでしょうか。何がいけないのでしょうか…
どなたかわかる方いましたらご教授お願いいたします

871名無しさん:2010/05/05(水) 09:13:42
>>870
それだけでは全然状況が分からないんですけど?
もしかしてメールアドレス全部入れたとか?
Usernameは@前のアカウントだけでいいんだけど

エラーは英文だから自動翻訳サイトにいって
何を言われているか検索するくらいの努力したら?

872名無しさん:2010/05/05(水) 10:53:58
>>871
Google App Engine(GAE)でcron動かすやり方をゆとり向けにまとめてみたのページを参考に、
ちゃんと@の前部分のみを入力しています
国は日本、キャリアはドコモですのでそれを選択しました
Usernameには正確に自分のアドレス(@の前まで)を入力しています
いろいろ試した結果、アドレスの中で.がふたつ連続しているのがいけないようなのですが、実際そのアドレスを使っている以上どうしようもありません
http://code.google.com/intl/ja/appengine/から登録→reate an Application→でアドレスがはじかれてしまう、としか言いようがありません
他にどのような情報が必要でしょうか。それすらわからないのでどんな初心者レベルの質問でもしていいというこちらで質問させていただいています
エラー文にはエラーが起きたからもう一度試せとしか書かれていません
このためにアドレスを変えるわけにはいきませんし、もう無理だから諦めるしかないのでしょうか
申し訳ありませんが、もういちどよろしくお願いします

【バージョン】2.04 beta
【設置鯖名】@pages
【PHPのバージョン】PHP-5.2.6
【手動】動く

873872:2010/05/05(水) 11:32:57
すみません、追記です
googleのページにもありましたが、ドコモはダメのようですね…
+81でもだめでしたし、諦めるほかないようです
下調べ不足失礼しました…何とかならないものでしょうか…

874名無しさん:2010/05/05(水) 14:50:54
data.txt内で優先度をつけるようなことは出来ますか?
このセリフを優先的にツイートしてその他はそこそこにツイートして・・・みたいな

875名無しさん:2010/05/05(水) 14:56:11
>>874
優先させたいポストを複数入れとく
もしくはif・else等で確率操作して読み込ませるファイルをわけるとかね

876874:2010/05/05(水) 14:57:06
折角時事ネタ入れてもツイートしてくれなかったら悲しいなあって

877874:2010/05/05(水) 14:58:31
>>875
ああなるほど!
作中セリフが大量にあるのでファイルを分けるほうでやってみたいと思います。
自分でも今からやり方探しに行きますが
できればやり方も教えていただけませんか?

878名無しさん:2010/05/05(水) 15:05:14
>>877
>>575

879875:2010/05/05(水) 15:10:30
>>877
んーと、携帯からなのでソースを書きにくいんだが
>>575と公式解説の「5回に1回ポスト」のあたりを参考にしてみて
この条件分岐を「●回に■回はa.txt、それ以外はb.txtからポスト」みたいにすれば簡単
細かくしたいなら時間ごとに読み込ませるファイルを変えるとかね

880名無しさん:2010/05/05(水) 15:17:15
■■■初心者の皆さんへ■■■

くどいけど、>>575を一度くらいは見てください、ちょっとした知識で解決することもあります。
初歩的過ぎる質問は>>575読めでスルーされてしまうかも…?
というわけで、まずは>>575を読もうね!

881874:2010/05/05(水) 15:31:59
ありがとうございます!がんばってみます!

882名無しさん:2010/05/05(水) 16:13:37
switch(true)の中にifって入れられますか?

switch(true){
case $now_g == 'sleep' : //寝ている時間帯だったら空の配列を指定
$plist = array();
break;
case ($now_g == '23')&&($now_i >= '30') : //23時台かつ30分以降だったらおやすみメッセージの配列を指定
$plist = $mes['night'];
break;
case ($now_g == '7')&&($now_i <= '30') : //7時台かつ30分以前だったらおやすみメッセージの配列を指定
$plist = $mes['morning'];
break;
default : //それ以外の場合はランダムメッセージ配列を指定
$plist = $mes['rand'];
break;
};

これの、最後の$plist = $mes['rand'];を
if(date("i") % 30 === 0){$response = $eb->postRandom("data.txt");}
に換えても大丈夫なのでしょうか?

883名無しさん:2010/05/05(水) 17:05:12
はじめまして。
準備したテキストを順番にポストしていって、準備した中から「めでたしめでたし」が投稿されたらbotの投稿をそこで止め、その後また初めから再開させる場合は、どうしたらいいのでしょうか?
わかる人ご教示ください。よろしくです。

884名無しさん:2010/05/05(水) 19:28:47
はじめまして
reply_pattern.phpの編集で
タイムラインに反応して@を返すスクリプトの雛形をください><

885名無しさん:2010/05/05(水) 21:14:58
>>883 >>884
まずは>>575見てみたら?
wikiのとおりやっていけば、基本機能についてはわからないはずないのだが?

886名無しさん:2010/05/05(水) 21:39:26
>>885
あまり触らない方がいいかと。冷やかしなんだし

887名無しさん:2010/05/05(水) 22:21:05
初めまして。質問させて下さい。
必要な準備を済ませてファイルを全てアップロードしたと思うのですが、

object(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"
["error"]=>
string(33) "Read-only application cannot POST"
}
70分以内に受け取った@はないようです。

というエラーが表示されてしまい、手動postができません。
バージョンは2.0、設置鯖名は @pagesです。
パーミッションも指定された3つは666に設定されています。

素人なので、エラーの原因がわからず困窮しています。
このあたりにエラーの原因があると思われる、等でも結構ですので、
何かお分かりの方がいらっしゃいましたら、助言頂ければ幸いです。
よろしくお願いします。

888887:2010/05/05(水) 23:10:02
連投すみません。
>>887への追記ですが、bot.phpの内容は

//$response = $eb->autoFollow();
$response = $eb->postRandom("data.txt");
//$response = $eb->postRotation("data.txt");
$response = $eb->reply(70,"data.txt","reply_pattern.php");
//$response = $eb->replyTimeline(2,"reply_pattern.php");

となっております。
ここはほとんど弄っていないので
他にどこか設定ミス等をしている箇所がある可能性が高いと思うのですが、
引き続きどなたかのアドバイスお待ちしております。

889名無しさん:2010/05/05(水) 23:20:11
【バージョン】2.04
【設置鯖名】JUST-SIZE
【PHPのバージョン】5.x
【実行】 GAE
【手動】 動かない
【不明点など】
二時間ほど前まで普通に動いていたbotが急に定時ポストもリプもしなくなりました
GAEにログインして前回の実行結果を見たらDownloadErrorと出ています
手動でbot.phpを叩いてみたところ、以下のようなエラーが出てきました

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/******/public_html/bot/PEAR/HTTP/OAuth/Consumer.php:250</td></tr>
<tr><td align="center">1</td><td>HTTP_OAuth_Consumer->sendRequest('http://twitter.c&hellip;', Array, 'GET')</td><td>/home/*****/public_html/bot/EasyBotter.php:520</td></tr>
<tr><td align="center">2</td><td>EasyBotter->_getData('http://twitter.c&hellip;')</td><td>/home/*****/public_html/bot/EasyBotter.php:548</td></tr>
<tr><td align="center">3</td><td>EasyBotter->getFollowers()</td><td>/home/*****/public_html/bot/EasyBotter.php:387</td></tr>
<tr><td align="center">4</td><td>EasyBotter->autoFollow()</td><td>/home/*****/public_html/bot/ in /home/*****/public_html/bot/PEAR/HTTP/OAuth/Consumer/Request.php on line 214

何度も手動で叩いてるとたまに普通に動いている時もあるようです
原因がさっぱり分からないので分かる方どなたかお願いします

890名無しさん:2010/05/06(木) 01:47:16
>>888
>>575見て欲しいね
Read-only application cannot POSTを和訳してみれ

>>889
GW+アニソン関連のツイートでTwitterが不安定になっているせいじゃないの

891名無しさん:2010/05/06(木) 12:38:28
加速器、狩りBOT
http://loda.jp/asada_mao/?id=895.zip

892名無しさん:2010/05/06(木) 18:00:29
雑誌に載って人気の無料携帯ゲームユートピア
http://utpa.jp/?guid=on&amp;cv=29911

メルアド一切不要
キャラを作成してレベルを上げて装備を整え戦って国を強くしよう

現在2chねらーも荒し気分で国を作ってるがリアDQNに押されてるのがクソワロタwww




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