【Twitter】 BOT製作支援スレat PHP
【Twitter】 BOT製作支援スレ - 暇つぶし2ch79:nobodyさん
09/10/18 19:22:35
corn-job.orgって使えるcronの数決まってる?

80:nobodyさん
09/10/19 00:15:54 slCeJxW2
なんかおもろいbot教えて

81:nobodyさん
09/10/19 00:38:11
リプライに関して。
プログラムは基本的に動くんだけど、
たまに「@ID」のみの空白リプライ返してるときがある。
単に負荷がかかりすぎ、ってことなのかな?
同じ症状出た人いたら教えて欲しい……。

82:nobodyさん
09/10/19 02:47:24
POSTするステータス自体が、何らかの要因でそうなってるんじゃないの?
あとは、\0 が入ってるとか。
どっかにログとして保存しとくと確認しやすいかも

83:nobodyさん
09/10/19 03:19:16
空リプライはこれが原因とかじゃないかな?
URLリンク(d.hatena.ne.jp)

84:nobodyさん
09/10/19 12:45:05
作ってみたしリプライの出来るんだがシカトが多いなと思ったら
リプライを読み込むまでにもらった最新の一件にしかリプライしないようだ
原因は何が考えられるでしょうか?

85:nobodyさん
09/10/19 13:10:49
作ってみた内容がわからんから何とも言えない

86:nobodyさん
09/10/19 16:55:12
最新の一件にしか反応しないようなソースだからじゃないのとしか

87:nobodyさん
09/10/19 19:17:47
corn-job.orgが使ってるけど1/3くらいの割合で作動しない気がする
どっか2分間隔でcron使える鯖ないかな

88:nobodyさん
09/10/19 20:17:59
elseif( preg_match("/(.+)(なのか|だったのか)/",$text)){ {//「なのか」または「だったのか」の前に何かしら文字があった場合にマッチ
$nanoka = $1;  //「なのか」または「だったのか」の前の文字を$nanokaに代入  ←この行でパースエラーになるんだけど何がおかしいの?
$mes = array("$nanokaなのかー"); //$nanokaを台詞に組み込んで引用!
$mes_n = count($mes) - 1;
$mesrand = mt_rand (0,$mes_n);

89:nobodyさん
09/10/19 20:19:37
全角スペースが入ってるから

90:nobodyさん
09/10/19 20:27:16
>>88
elseif( preg_match("/(.+)(なのか|だったのか)/",$text,$match)){ {
$nanoka = $match[1];  

91:nobodyさん
09/10/19 20:29:06
>>88
あと
>$mes = array("$nanokaなのかー"); //$nanokaを台詞に組み込んで引用!
>$mes_n = count($mes) - 1;
>$mesrand = mt_rand (0,$mes_n);
は何をやりたいのかよくわからないのだけど
これだと count($mes) は必ず1になると思う

92:nobodyさん
09/10/19 20:39:42
>>1-1000
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;

93:nobodyさん
09/10/19 20:40:27
ああ$1とか書いてるからか・・・

94:nobodyさん
09/10/19 20:41:58
>>90
迅速な回答ありがとう
おかげでとりあえずエラーは消えたが何故かリプライに反応はしなかった


95:nobodyさん
09/10/19 21:40:31
corn-job.org2分間隔と30分間隔で使ってるけど2分の方ほとんど機能しねえ
間隔長い方がいいのか?関係あんのかな

96:81
09/10/19 22:14:13
>>82 >>83
ありが㌧ ちょっと試してみる。
空リプライをポストしないようにすればいいんだな、とりあえず。

97:nobodyさん
09/10/19 22:56:38
bot動かすのに一番向いてる鯖ってどこ
cron使えるとこで

98:nobodyさん
09/10/19 23:11:03
俺の鯖

99:nobodyさん
09/10/19 23:22:10
さくらサーバーってcron最短で何分間隔で使えるんだろ

100:nobodyさん
09/10/19 23:26:10
twitterにアクセスできて、任意のプログラムを動かせるのであれば
鯖である必要すらない。

101:nobodyさん
09/10/19 23:48:38
>>93
Perlやってると陥るミスだな。
構文微妙に似てるせいで同じとこと違うとこを混同しやすい。

102:nobodyさん
09/10/20 00:42:14
手動だとちゃんとポストされるのにcronがポストしてくれない
ドイツのサイト使ってるけどここだめなのか

103:nobodyさん
09/10/20 01:12:52
普通にcron使えよw

104:nobodyさん
09/10/20 02:01:10
ちょっと前に名前を呼ばれてたので名前を出すけど@phaです。
特定の単語に特定の単語を返す機能は次のバージョンアップで付ける予定です。
もうちょっと待ってくださいー。

105:nobodyさん
09/10/20 02:45:47
>>102
例のドイツのサイト、多分今すごく負荷かかってるんじゃないか?
良くも悪くも、かなり認知度高まってきた感じだし。

106:nobodyさん
09/10/20 05:16:21
>>104
すっごい頼りにしてる。

107:nobodyさん
09/10/20 17:59:03
@phaさんが配布してるのと、
時間になったら寝たり、時間帯のつぶやきを組み合わせようとして
途中までうまくいってたんだけど
文字化けしちゃってうまく出来なかった・・・。
誰かやってうまく行った人居ませんか?

108:nobodyさん
09/10/20 18:25:20
>>104
@phaさんキタ━━(゚∀゚)━━!!
待ってます!!!!!!!

109:nobodyさん
09/10/20 18:42:07
>>104
お世話になってます

110:nobodyさん
09/10/20 18:50:55
>>107
文字コードの設定を見直してみ
UTF-8になってないと化ける

111:nobodyさん
09/10/20 19:50:08
cron-job.orgが使い物にならないからxreaでcron動かそうと思ったが設定とか全くわかんね
正直ナメてたわ誰か助けて

112:nobodyさん
09/10/20 20:38:42
xreaのcronだったら下のほうに解説ないかな。
もしくはcronでぐぐって設定とかをちょっと勉強するのがよいかも。

113:nobodyさん
09/10/20 20:45:56
とりあえず、シェルっていうのが必要ということはわかった
このシェルスクリプトをサーバーにうpして、それにアクセスするとnotfoundになるんだけど間違ってるから?

#!/bin/sh
/usr/local/bin/php /virtual/ユーザID/public_html/reply.php
exit

見よう見まねでこんな感じでやってみたんだけど

114:nobodyさん
09/10/20 20:56:17
>>110
それがUTF-8になってるんだよね。
一度消してうpしなおしても駄目でさ、エラーも出るんだけど、文字化けしてつぶやかれてるし。
カスタマイズ前でつぶやけば文字化けしないんだけども。
もうちんぷんかんぷん。
PHP素人が調子に乗って弄るもんじゃないね。

>>111
私もよく解らないから例だけども。
改行コードを「LF」保存で「cron1.sh」(他の名前でも.shだったらおk)ってファイルを作成。

#!/bin/sh
#PHP
/usr/local/bin/php /virtual/ユーザー名/public_html/botフォルダとか/動かしたい.php
exit

で、logとかpublic_htmlフォルダとか色々所らへんに「cron1.sh」をうp
属性は「705」あたりで平気だと思う。(うpする場所は他の所でも多分大丈夫だと思う。)
ログインしてCOREジョブページで設定。
毎時間0分動かしたい場合は「分」に「0」毎時間15分に動かしたい場合は「分」に「15」を入力
/virtual/ユーザー名/~には「cron1.sh」を置いた場所を指定
例どおりだったら

/virtual/ユーザー名/cron1.sh

一時間に1回が限度だから時間をずらして設定1、設定2とか
やれば一時間に複数回動かすことが出来るっぽい
で「保存」して反映されれば動くっと。
説明ヘタクソでごめん・・・これで解るといいんだけど・・・

長々と失礼しました。

115:nobodyさん
09/10/20 21:02:14
>>114
詳しい説明ありがとう
この改行コードってのがググった時にも出てきたんだがこれはどこで設定できるんだ?

116:nobodyさん
09/10/20 21:14:40
>>115
×COREジョブ ○CRONジョブ
ごめん。

自分はテキストエディタTeraPadで「ファイル」→「文字/改行コード指定保存」で指定出来たよ
何のテキストエディタでcron1.shを作るかによって変わると思うから
使ってるテキストエディタで改行コードについてググればいいんじゃないかな?

117:nobodyさん
09/10/20 21:41:44
>>116
㌧クス
とりあえず言われた通りに設置してみた
相変わらずcron.shはNot Foundになるが…大丈夫なのか

118:nobodyさん
09/10/20 21:58:03
Not Found?
ファイルが無いって意味じゃないっけ?
ファイルのURL間違えてない?

119:nobodyさん
09/10/20 22:21:59
cronがちゃんと実行されてるとメールが来るはずだよな
来ないということは実行されてないってことなのか

120:nobodyさん
09/10/20 22:23:37
xreaってメール来るんだっけ。
僕は使ってるけど来てないな。設定によるのかもしれないが

121:nobodyさん
09/10/20 22:40:53
なにがおかしいのか動作しないっぽい
こんだけ丁寧に教えてもらったのに申し訳ない…
手動ではちゃんと動くからcronの設定が間違ってるんだろうけど

122:nobodyさん
09/10/20 23:49:43
10のプログラムの方のソースで、TL引用するbot作れんかなと思って、それを元に色んな所を参考にしてやってるんだが
if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if( preg_match ( "/(「?.+?」)/u", $var ,$match)){ //←ここ改変
$message = $match[1];              //←付け加え
tweet($message ,$username,$password);
としてみたところ、エラーなどは出ないもののリプライがない…。もうどこをルール違反してんのかわかんねぇw

123:nobodyさん
09/10/21 08:47:10
あー、やっぱりcron-job調子悪いのか…

2つBOT置いてるのに片方が反応しても片方が一日沈黙している。
別鯖探してるけれどなかなかいいのがないなぁ。
改変もエラーばかりだし、なんでBOT作ったのか自分でもわかんなくなってきたよ


いや、でも負けないけどさ。

124:nobodyさん
09/10/21 08:57:38
8bitさんのコメにあるのと同じ質問で申し訳ないのですが
リプライに対する反応語句を増やすにはどこを増やしていじればよいのですか?
if構文から見て自分なりに増やしても、反応すらしてくれません。


125:nobodyさん
09/10/21 09:25:24
>>123
自鯖?
cronでこけるときって文字エンコードがらみが経験上多い。
普通にコマンドラインで動かすと動くんだけど、cronで動かないとか。
print文とかあったらコメントアウトしてみるとか

レンタル鯖でcronはあきらめたほうがいい

126:123
09/10/21 10:15:59
>>125
ありがとー 自鯖じゃなくて、銀さんのところで見た@PAGES使ってる。
いかんせん初心者@勉強中なもんで、ソースはいじらずに使ってるだけなんだけど
昨日くらいからcron-jobが全く動かなくなってしまってる。
超過エラーは出ててもそれまでは動いてたんで、元鯖が不調なせいかなと思ってた。
手動ならおkぽいから、phpは平気(当然だが)なんだけどね。

>レンタル鯖でcronはあきらめたほうがいい
あー…もう素直にBOT手放すしかないのかなあ…PHP楽しいのに。

127:nobodyさん
09/10/21 10:36:05
cron-job.org安定しないよなー…
他にcron使える手段が自分にはないから仕方ないけど
ときどき実行に失敗するのは我慢できるが
勝手にアクティブ設定が無効になるのは勘弁してほしい


128:nobodyさん
09/10/21 11:34:03
有料だけどすごく安いのでwebcron.orgはどうかしら

129:nobodyさん
09/10/21 11:38:32
webcron.org使ってるけど動作は安定してると思う。
webcron.orgも昔は無料だったんだけど、無料である程度人が集まった時点で有料化された。
なのでそのうちcron-job.orgもそのうち有料化されて、そしたら動作も安定するんじゃないかと思ってる

130:nobodyさん
09/10/21 11:58:44
いろいろと本格的にやりたいんならsheevaplug買えばいいよ
玄人から出るみたいだし

131:nobodyさん
09/10/21 19:56:40
シェルスクリプトって文字コードUTF-8でいいの?

132:nobodyさん
09/10/21 20:19:29
>>79>>87>>95
googleappengine使えば、好きなだけcron設定できるよ

133:nobodyさん
09/10/21 20:43:51
>>132
今GAEが対応してる言語ってpythonかjavaだけじゃない?
php対応してたら使いたいけどなー

>>>79>>87>>95
>googleappengine使えば、好きなだけcron設定できるよ


134:nobodyさん
09/10/21 21:23:16
pythonでいいじゃん

135:nobodyさん
09/10/21 21:26:06
制限あるじゃん

136:nobodyさん
09/10/21 23:03:06
自分のPCにapacheとphpインストールしてcron動かせばいいじゃん
立ち上げっぱなしになるのがネックだけど

137:nobodyさん
09/10/22 00:00:16
@phaです。
プログラミングができなくても作れるTwitter botの作り方
URLリンク(pha22.net)
少しバージョンアップしました。
特定の単語に特定の単語を返す機能と、現在の時間を組み込める機能を付けました。
よかったら試してみてくださいー

138:nobodyさん
09/10/22 00:10:26
>>137
お疲れ様です。

139:nobodyさん
09/10/22 05:06:11
>>137
本当に有難う。

140:nobodyさん
09/10/22 07:38:40
>>137
ありがとうございます!

141:nobodyさん
09/10/22 08:23:56
>>137
いけました!
有難う御座います!!
しかし、中身に記載されてるバージョンが1.1のまんまでしたよー

142:nobodyさん
09/10/22 14:33:42
リプライをもらうと@だけ発言する、うちのボット…

143:nobodyさん
09/10/22 15:09:08
>>142
確実にソースが間違ってる。がんがれ

144:nobodyさん
09/10/22 17:51:54
>>141
バージョン直しました

145:nobodyさん
09/10/22 18:32:14
おつかれさまです!!!!


146:nobodyさん
09/10/22 19:04:13
自分のbotが他のbotにフォローされてるんだけどフォロー返したら会話がループしそうなんだよな

147:nobodyさん
09/10/22 19:14:00
この新しいreply_patternってやつをreply_randomに組み込めばいいんだよね?
なんかエラー吐くんだけどどこに置けば?

148:nobodyさん
09/10/22 19:37:46
たまにリプライするとき@の前にドットつけてるbotいるけど何の意味があんの?

149:nobodyさん
09/10/22 20:45:08
>>147
reply_pattern.php のファイルの場所を移動させなくてもそのまま置いておけばできたよ

150:nobodyさん
09/10/22 21:26:28
>>143
だよねぇ。。
がんばるわ。

151:nobodyさん
09/10/22 23:02:20
>>137
ありがとうございましたー!!
でも動かないー!

152:nobodyさん
09/10/23 00:01:49
>>151
どんな状態で動かない?

153:nobodyさん
09/10/23 00:20:42
>152
反応が全くない。TL上のワードを拾うわけじゃないんですよね?
普通に@無視される…
まぁ、@つけても無視されるんですが。おやすみ入れてもスルー。

154:nobodyさん
09/10/23 01:31:51
>>137
本当にありがとうございますー!
今まで特定の語句への返信は、
phaさんのを参考にして作ったという某ブログのスクリプトを使っていたんですが
こちらの方がすっきりしていてサイズが小さく済む+追加しやすいのでこちらに変えました
定期ランダムポスト+特定の語句へのリプライはphaさんのスクリプト
TLから特定の語句を拾ってのリプライは某ブログのスクリプトという
合わせ技でもなんとか動いてます
こんなに使いやすいスクリプトを作って下さり、本当にありがとうございました

155:nobodyさん
09/10/23 07:18:12
>>137
構文を追加したらRT対策が解除される、ということは不可能でしょうか?
.@での挨拶が多いので対応出来なくて…

156:nobodyさん
09/10/23 12:22:52
リプライの応用で、特定のワードには反応しないってことはできるのかな?

157:nobodyさん
09/10/23 12:44:10
phaさんのリプライ返すのを改変してTL中にキーワードがあったら返すのつくってるんだが
自分の発言にキーワードがあった場合やリプライ時でも返してしまう
if( $screen_name != $username){ //自分の発言時は反応しない
if(strpos($re["text"],"@".$username) === False){ //発言の中に@があった場合は反応しない
if(preg_match("/キーワード/",$re["text"])){ //特定のキーワードがあった場合反応する
$replies[] = $re;
}
}
}
こう改変してるんだけどどこがへんなのかな?
条件分岐がうまく動いてないみたいなんだけど

158:nobodyさん
09/10/23 13:59:49
スクリプト自体は一切手を加えてないのに実際に投稿されるときとされないときがある。
txtファイルに登録してる発言内容が少ないので同じ発言がたまたま選択されて連投規制に引っかかったのか、
一度に投稿スクリプトを動かし過ぎてAPI規制に引っかかったのか…

同じ内容を続けて投稿してしまわないようなチェック機能とかあったらいいなあ。
適当なtxtファイルを用意して発言内容をそこに書き込む→発言前にそのファイルの内容をチェック、
選択した発言が同じなら発言選択をやりなおすとかだったら実現できるかな。
作ってみようかなあ。

cron-job.orgも登録してみたけどうまくいかないのでcygwin入れてみたけどさっぱりわかんないやorz

159:nobodyさん
09/10/23 14:12:26
>>157
datファイルをつくってそこに最新のTLを蓄積
$host = "URLリンク(twitter.com)";

ってやったほうがいいかも

160:nobodyさん
09/10/23 14:26:03
>>158
全然投稿で着てないわけじゃないんでしょ?
だったらやっぱり重複制限に引っ掛かってるのかもしれないから
適当にtxtファイルの中身増やしてテストしてみたら?

161:nobodyさん
09/10/23 16:46:40
cron-job.org落ちた?

162:nobodyさん
09/10/23 16:49:29
落ちてるね

163:nobodyさん
09/10/23 17:44:36
そういえば、rubyの本で人工無脳をつくる本があったけなぁー
アレどっかにつんであるはずだからさがして
twitterのbotで発言できるようにしてみるか



164:nobodyさん
09/10/23 20:39:31
>>137のスクリプトでおはようをPOSTすると「おはよう」の返事+普通の@返しされるんだけど
他にもこういうひといない?

165:nobodyさん
09/10/23 22:33:51
bot同士が会話してるせいでTL流れるのがハンパねえ
これって連投すると規制されるのか?

166:nobodyさん
09/10/23 23:13:23
・直前の10ポストと同じ内容の投稿は受け付けない。>>68
・2時間で125以上ポスト出来ない(というメッセージが出たことある)

投稿規制はこの二つだったはず。後者はちょっと曖昧かも。

167:nobodyさん
09/10/24 00:40:33
後者のpost規制の基準は曖昧だからな…変動してるらしいし
定期postの間隔がよっぽど短いとか
リプライ反応する間隔が2分とかで
毎度数十件のpostでもしなきゃされないんじゃね

168:nobodyさん
09/10/24 00:53:48
レンタルサーバーでcronが安定してるのってどこがある?
cron-job安定しないんだよなー
それとも2分じゃなくて4~6分間隔くらいにしたらまだましかね?

169:nobodyさん
09/10/24 01:14:32
>>168
80code.com安定してるよー。現在は新規受付停止中だけど。
さくらのスタンダードとエックスサーバーもcron可だったと思うが、使った事無いので動作については分からん

170:nobodyさん
09/10/24 01:54:14
>>169
調べてみるわー、ありがと
リプライ返しやTLから拾ってくるタイプだから分おきに
動かないときついわ

171:nobodyさん
09/10/24 03:16:09
pha22さんのスクリプト改造して直近10件の投稿とかぶらないようにする改造してるんだけど、
なぜか同じ文字列を見つけてくれないorz
誰か助言プリーズ

//ログをチェックして直近10件の投稿と重複させない
//ログリストを読み込む
$logfile = "log.txt";
$logs = file_get_contents($logfile);
$logs = trim($logs);
$logs = preg_replace("@(\r\n|\r)@", "\n", $logs);
$logs = preg_replace("@\n+@","\n",$logs);
$logs = mb_convert_encoding($logs, 'UTF-8', 'EUC-JP,SJIS,ASCII,JIS,UTF-8');
$lo = explode("\n", $logs);

for ($c = 0; $c < count($lo); $c++){
if (strcmp($message,$lo[$c]) === 0){
//同じだった場合もう一回ランダム発言を取得しなおしてカウンタを0に戻す
//発言をランダムに一つ選ぶ
$message = $tw[array_rand($tw)];

//カウンタを戻す
$c = "-1";
}

}


172:nobodyさん
09/10/24 03:24:11
cronいつの間にかneinなってた…
上でググるアプ使ってる人はどうやってるの?


173:nobodyさん
09/10/24 03:29:14
>>171
$c = "-1";

174:nobodyさん
09/10/24 10:28:47
>>173
ありがとう
出来た気がする。もうちょっとテストしてみるわ

175:nobodyさん
09/10/24 10:47:44
「いつ・どこで・なにをする」をランダムに組み替えて発言するとか
相手の発言を引用する(○○だよ→○○なんだね)みたいなやり方教えて

176:nobodyさん
09/10/24 11:24:30
指定した時間に、指定したアイコンに
自動的に複数回変更できるスクリプトないですか…ね?

URLリンク(ameblo.jp)
ここ参考にしようと思ったらcurl使えなくて

177:nobodyさん
09/10/24 11:33:14
>>172
上の人じゃないけどGAEでcronできたよ。

URLリンク(builder.japan.zdnet.com)
URLリンク(code.google.com)
URLリンク(code.google.com)

↑ここ参考にした

178:nobodyさん
09/10/24 11:58:22
お願いだー!
誰か、TL上のワード拾って反応するBOTのソースくれー!
バカなのは承知してるし勉強もしてるんだー

179:nobodyさん
09/10/24 12:24:52
>>137のスクリプトって○分までは吐かないのか…

180:nobodyさん
09/10/24 12:34:34
>>178
ググればいくらでもでてくる

181:nobodyさん
09/10/24 14:40:42
>>137のスクリプトを置いて、試しに動かしたら運勢の結果がランダムではなくひとつずつ発言として全部出てきたんですが…。
IDとパス以外変更してないのになにこれ?

182:nobodyさん
09/10/24 15:01:23
cronあってねーんじゃねーの

183:nobodyさん
09/10/24 15:04:22
>>179
時間の奴はちょっと調べれば簡単に改変できるよ
date()あたりググればいいんじゃない

184:nobodyさん
09/10/24 16:31:39
replyで何度試しても「~分以内に受け取った@はないようです」と表示されます。
1~2回うまく行ったけどあとはさっぱり
何か考えられる原因があったらご教授願います

185:184
09/10/24 16:56:22
解決しました。
@ユーザー名の後のスペースが全角になっていました…orz
お恥ずかしい限りですがご報告だけ。


186:nobodyさん
09/10/24 23:17:12
>>177
ありがとう!やってみる!

187:nobodyさん
09/10/25 00:51:07
昆虫みたいなbotをつくりたい
あれすごい

188:nobodyさん
09/10/25 11:11:20
URLリンク(twitter.com)
これみたいに一部分だけをランダムに組み替えて発言させるにはどうしたらいいの?

189:nobodyさん
09/10/25 11:22:48 QovXst2Y
URLリンク(twitter.com)
上記のように、特定の言葉(この場合「商店街」)がつぶやかれたものを検索して
自動的にRTするようなBOTの作り方をご存じの方、ご教示願います。

190:nobodyさん
09/10/25 11:53:18
>>188
簡単な人工知能プログラムが必要。
bot技術とはちょっとかんけいない。

191:nobodyさん
09/10/25 17:18:48
>>190
そんな高度な技術でもないだろ、
とりあえずphaさんのスクリプト例に取るとpost_random.phpのテキストファイルの内容を一行ずつ読み込んでランダムに一つ選択するところと
reply_random.phpのテキストファイル中の{name}を置き換えるところを応用してくっつければ出来る。スクリプト長くなるけど。

192:nobodyさん
09/10/25 17:45:15
phaさんのだとPostに対してリプライ送るんじゃなくて「@ユーザーID」を
文頭においてPostしてるだけになるんだけど
ちゃんとしたリプライ送るようにするにはどうすればいい?

193:nobodyさん
09/10/25 18:05:57
phaさんのscriptの、特定の単語を返すってやつで
"おはよ"と"オハヨ"のどちらにも対応させる(1セットで)には
どうすればいいのでしょうか?

↓な感じにしたいんですが
"おはよ|オハヨ"=> array(
 "おはよう",
 "おはよ!",
),

194:nobodyさん
09/10/25 19:39:46
>>193
今のところそういう機能はないね。バージョンアップでつけるって言ってたけど

195:nobodyさん
09/10/25 20:20:59
>>181
FTPでアスキーモードで転送できてなくて改行が変になってるのかも
FTPでアスキーモードを指定、とやってみたらどうかなあ
わかんないけど

196:nobodyさん
09/10/25 21:19:37
セーフモードのPHPでcurl_opt設定を出来ないのは回避策はありますか?
DSOで。

197:nobodyさん
09/10/25 21:22:31
>>194
ありがとう。バージョンアップ…待ちます。

198:nobodyさん
09/10/26 02:00:49
自動フォロー返しやDM返しってどうやる?

199:nobodyさん
09/10/26 03:07:52
>>192
@付きステータスのアップデート時に、in_reply_to_status_id を付ける。
詳しくはAPI仕様書を読んでね。

>>198
適当な間隔でフォロワーやDMのリストを取得して処理すればいい。
API制限もあるし、1度処理したらファイルに記録しておく必要があると思う。
メール通知を利用するって手もありそうだけど、
メールが来ないことが結構あるような・・・・。

200:nobodyさん
09/10/26 18:23:57
>>199
仕様書読みながらphaさんの改変してin_reply_to_status_id付けようとしてるんだが
updateを使ってなくてどこにいれればいいのかわからん
reply_random.phpじゃなく
Twitter.phpの
function setUpdate($value)
{
return $this->_setData($this->sm_update,
array(
'status' => urlencode($value), in_reply_to_status_id => $id//←ここ
),
array(
'Content-Type' => 'application/x-www-form-urlencoded'
));
}
ここにいれればいいの?

201:nobodyさん
09/10/26 18:25:16
>>189
特定のつぶやきを検索するのには検索用APIが用意されているし、
RTの仕方についてはPOST時に適当な書式に沿ってRTを付けるだけ。
(retweet関係のAPIって正式に公開された?)
それらを適度に組み合わせれば清むので、
別段特殊な技術が必要な訳ではないから何も難しいことはないかと。


ところで、twitter.com/syoutengai で検索したら
なにやらひどいコメントが。
URLリンク(www.google.co.jp)

202:nobodyさん
09/10/26 18:29:46
>>198
自動リムーブだけど1日に1回、friends/idsとfollowers/idsの差分とって処理してる。
フォローも似たような案配でいけるんじゃない?

>199
in_reply_to_status_idって返信先ステータスのIDを指定するでいいんだよね?
送出前のヘッダを出力してみるとin_reply_to_status_idの指定がちゃんとしてあるんだけど、
レスポンスみると無視されてるみたいでハマってるんだ

203:200
09/10/26 18:36:56
>>200
似たような事してる人がいた!
自分はこう書き換えした
function setUpdate($value)
{
if(is_array($value)){
return $this->_setData($this->sm_update,
array(
'status' => urlencode($value['status']),
'in_reply_to_status_id'=>$value['in_reply_to_status_id']
),
array(
'Content-Type' => 'application/x-www-form-urlencoded'
));
}else{
return $this->_setData($this->sm_update,
array(
'status' => urlencode($value)
),
array(
'Content-Type' => 'application/x-www-form-urlencoded'
));
}
}
で、スクリプト側の方で
$st->setUpdate(array('status'=>$status,'in_reply_to_status_id'=>$in_reply_to_status_id));
みたいに書いてたよ


204:nobodyさん
09/10/26 18:53:10
botに好感度みたいなのを実装するのは無理?
あいさつをちゃんとしている人(Replyでおはようとか)にはやさしくなっていくとか…

205:nobodyさん
09/10/26 19:47:55
可能です

206:nobodyさん
09/10/26 20:33:51
>>203
おお、助かった!ちょっとやってみ…たらできんかった
エラー起こってないから単にin_reply_to_status_idが取得できてないだけなんかな

207:nobodyさん
09/10/26 20:39:34
Basicでぼっとつくりたいんですけど・・・


208:nobodyさん
09/10/26 22:11:17
>>204
たまごっちみたいなもんか

209:nobodyさん
09/10/26 22:31:38
>>208
うんこながしたりプロテインのませたりするんだな

210:nobodyさん
09/10/27 00:08:03
necotterってそんな感じじゃなかったっけ

211:nobodyさん
09/10/27 00:34:10
そのうち育てたbot同士で対決させるんだろ

212:nobodyさん
09/10/27 00:36:04
>>203
これの場合
$in_reply_to_status_id = $replies2[$i]["in_reply_to_status_id"];
$status = "@".$replies2[$i]["screen_name"]." ".$text;
でいいのか?

213:nobodyさん
09/10/27 02:46:16
銀さんとこのソースで、寝る時間が1時~6時ですが
それを12時~19時までにしたいのですが、うまくいきません

if (preg_match("/^[1-6]{0,1}$/",$now_g)){
$now_g = 'sleep';
};

[1-6]が1時~6時、{0,1}が単位が0か1の場合というのは何となく分かるのですが
2桁にしたいので{0,1}を{0,2}や{0,1,2} {0-2}にしてもだめでした…
どうすればいいのでしょうか?

それから、翻訳機能を持たせたいのですが、ソースを公開してるところはありませんか
@で特定の単語をくれたら翻訳してくれる…というのをやってみたいです。
『@bot +++たん、[◆◆]を翻訳して』とreplyしたら『@**** 『●●』だよ』というやつです。
ご存知の方、教えてください


214:nobodyさん
09/10/27 13:25:06
>>212
ごめん>202=203なので>203のソースは上手くいかないんだ
phaさんのソースは知らんがin_reply_to_status_id=返信先の記事idだと思ったから
Services_Twitterの出力結果とAPI仕様書照らしあわせて
$in_reply_to_status_id = $replies2[$i]->id;
ってしてる。

>>213
preg_matchじゃなくて単に「$now_gが12より大きく、19より小さかったら」って書けば?

215:nobodyさん
09/10/27 15:03:13
毎月の決まった日時に決まった台詞を吐くbotはつくれないでしょうか

216:nobodyさん
09/10/27 15:13:33
phaさんの所でBOT作らせてもらったんだけど、特定の単語にしか反応しないようにって出来ないかな。
通常のリプライなしにしたいんだけどできる?例えば「おはよう」にしか反応しないとか。

217:nobodyさん
09/10/27 15:16:13
>>215
毎月の決まった日時にだけ起動させればいいんじゃないの?

218:nobodyさん
09/10/27 17:29:00
>>213
214氏が指摘している通り、わざわざpreg_matchを使う必要が元々無いよ。

翻訳機能のソース以前に、自前で自然言語の辞書を持つ事に結構な
リソースが必要なので、大抵は他を呼び出してると思うんだけど。
「翻訳 API」とかで検索すれば結構あるので、それを使うのが手っ取り早い。
特定の単語しか翻訳しない仕様なら、それこそ鸚鵡返しbotで十分だろうし。

219:nobodyさん
09/10/27 18:42:15
>>216
できるよ

220:nobodyさん
09/10/27 19:28:32
phaさんのを見てbot作って、いままで普通に動いてたんだけど
なぜかいきなりエラーになったみたい。
発言はするんだけどリプライしなくなったっぽい。

reply_random.php にアクセスすると
Parse error: syntax error, unexpected '{', expecting ')' in /home/atumari.net/pp259583/public_html/reply_pattern.php on line 181
というのが出るんだけど、これって一体なに?
どこが原因でエラーになってるのかさっぱりわからない…

221:nobodyさん
09/10/27 19:52:06
>>220
行末の;が抜けてるとか
それよりスクリプト置いてるURL晒さないほうがいい、早く変えれ

222:nobodyさん
09/10/27 20:07:10
>>221
ありがとう!解決した
URL変えてくる。すみません

223:nobodyさん
09/10/27 22:49:08
in_reply_to_status_idの付加方法がわからん
誰か教えてくれ

224:nobodyさん
09/10/27 23:25:26
in_reply_to_status_idを付加したバージョン作った
URLリンク(pha22.net)

225:224=@pha
09/10/27 23:29:15
>>203の方法でいけるはずなのになんでできないんだろう、って思ってソースをよく読んでみたら、
Services/Twitter/Connector.phpの95行目でリクエストを組み立てるときに
$body .= '&';
ってやってるのが原因だった
$body .= '&';
に変えたらできるようになった。
他にも特定の単語に反応するときに正規表現を使えるようにもしました。

226:nobodyさん
09/10/27 23:32:40
>>224
生きるのに疲れたのでbotになりたいんですけどどうーすれば良いですか?


227:nobodyさん
09/10/28 00:02:18
>>224
おつかれさまです。
1つお伺いしたいのですが、バージョンアップをする場合は
tw.txt以外の全てのファイル(Servicesフォルダも)を
入れ替えればいいのでしょうか?

228:nobodyさん
09/10/28 00:03:51
>>224
乙です、やろうとしてたことがかなり出来るようになってて嬉しい!

229:nobodyさん
09/10/28 00:54:09
>>227
そうですそうです

230:nobodyさん
09/10/28 13:07:25
正規表現面倒くさい…
単純に|で区切るやつにして欲しいです

231:nobodyさん
09/10/28 13:53:35
え…?

232:nobodyさん
09/10/28 14:06:33
>>230
|が正規表現…だよね?

233:nobodyさん
09/10/28 15:50:24
phaさんの新しいやつの事でしょ

234:nobodyさん
09/10/28 17:58:20
>>224=225
うへえ、どうりでヘッダ見てても分からないはずだーありがとうございました!

235:nobodyさん
09/10/28 19:41:20
>>225
$body .= '&amp;';

$body .= '&';
に変えたということです。
2chって実体参照通るのね。

236:nobodyさん
09/10/28 19:59:24
>>224のスクリプトをDLして弄ってます。
正規表現っていうのを初めて使うのですが

『おーい』『おーーーーーい』等の『ー』の数が決まっていない単語の
どちらにも対応させるにはどう書けばいいのでしょうか?

おー*い、おー+い、おー?い、おー(ー)?い ではスルーされて行き詰まってます…

237:nobodyさん
09/10/28 20:37:29
>>236
「おー」でいいんじゃね

238:nobodyさん
09/10/28 20:38:23
>>236
お(ー)+い

でどうかな

239:236
09/10/28 20:42:37
>>237
すみません、『えーーん』や『うーーん』にも応用したくて…
>>237さんの方法で、『えーーん』→『えー』と指定しまうと
『えーー!』等が引っかかってしまいます。

…ので、>>236の正規表現で煮詰まってます;

240:236
09/10/28 20:47:27
>>238
ありがとうございます。
『お(ー)+い』を試してきましたが、スルーされました…。


スクリプト毎に、使える正規表現というのは
限定されているものなのでしょうか?

241:nobodyさん
09/10/28 20:50:14
>>240
いま自分でPHPで試してみたけど、
 お(ー)+い
でいけたよ。

242:240
09/10/28 20:53:40
>>241
マジですか…余計にわからなくなってきた。
御手数おかけしました。

243:nobodyさん
09/10/29 04:23:33
>>230
>>233
対応してるよ

244:nobodyさん
09/10/29 05:48:07
正規表現がまったく反応してくれなくて困ってます…
phaさんのサンプルのこん(に)?ち[はわ]すらスルーされる始末

正規表現使わなければ普通に動きます
どこに問題あるんでしょうか…

245:nobodyさん
09/10/29 11:58:27
Webcronの「30sec・time-out」ってどういう意味なんだろ
有料だけどここ使ってる人いる?

246:nobodyさん
09/10/29 12:21:28
>>245

30秒でタイムアウトするって事だろ。
俺ここ使ってるけどたまにタイムアウトするよ。180秒にした方が無難なんだけど一回に? 0,0004はちょっとイタイ。

247:nobodyさん
09/10/29 16:55:26
>>246
なにがタイムアウトしてそれがどう影響するのか
わからない程度の素人だけど180秒にしたほうが
いいとわかっただけでありがたい
一度試用してみるよーありがとう

248:nobodyさん
09/10/29 20:29:41
>>244
自己解決しました。普通にver1.2つかってたよ、ごめんなさい。

正規表現難しいね
 聞(こえ|いて)[んる](の)??
に反応してくんないんだけど、どっか間違ってるかな


249:nobodyさん
09/10/30 19:30:09
相手の発言の一部だけを引用ってできないの?
「」の中だけとか

250:nobodyさん
09/10/30 19:44:57
できるよ

251:nobodyさん
09/10/30 20:46:18
konchuuの開発者って誰なの、気になる

252:nobodyさん
09/10/31 02:12:59
TLの特定の言葉に反応してリプライをするってやつ難しいな
ソースほぼ丸々コピーでやってるのにエラー出てお手上げ状態だよ…
ソース公開してる記事のコメント見るに同じような状況の人もいるっぽいけど
解決してなくてどうしようもねえ

253:nobodyさん
09/10/31 02:15:45
難しいって自分でコード書くのが難しいんじゃなくて
コピーした他人の奴をぐぐって動くように編集するのが難しいのかよ
まぁそれも力になるさ

254:nobodyさん
09/10/31 02:40:01
>>253
恥ずかしながらそういうことだ!
でもやってみたいから色々調べて勉強してみるよ

255:nobodyさん
09/11/01 00:14:13
twitter検索使ったbot作ってるけど最近検索が止まってるみたい。
公式の検索使った方がいいのかなぁ…。

256:nobodyさん
09/11/01 20:41:15
昆虫すげぇ、もうListsを駆使してる

257:nobodyさん
09/11/02 14:39:36
phaさん、単純なやつでもいいのでマルコフ連鎖を…

258:nobodyさん
09/11/02 22:50:28
最近BOTからBOTへのフォローがくるんだけど
無限ループに陥る可能性ある…よな?これ。
APIの回数制限とかあるけども。

259:nobodyさん
09/11/03 01:01:47
>>258
キャラクター系botだとあるある。自分もそれが怖いのでおはようやおやすみのような日常会話系単語にリプライさせられないでいる。
リプライした相手を記録しておいて、投稿前に照合するくらいの対策しか思いつかない。(記録は一日一回クリアするってことで)

botとメッセージをやり取りしないbotなら気にしなくてもいいんだろうけど、自分が作ってるのがキャラ系botなんで、同じキャラbot同士での会話もさせたいんだ。
いろいろやってるうちに好きなだけcron回したくて自分専用のサーバ欲しくなるw 

260:nobodyさん
09/11/03 02:51:05
無限ループはよく陥ってるbot見るけど
botからのpostは無視するようにすればいいんじゃないかなぁ
sourceがAPIとかなら無視させるとか botじゃなくてもAPIからの投稿だとスルーしちゃうけど
もしくはbotによくあるスクリーンネーム語尾が~botなら無視させるとか… これも普通の人が~botってスクリーンネームだとスルーしちゃうのが難点だな

261:nobodyさん
09/11/03 05:40:38
時間別に違う言葉を返すのってできないかな
昼過ぎにおはようって言うと、「寝坊?」って返すみたいなの

262:nobodyさん
09/11/03 08:19:52
>>261
PHPだったらdate("H")とかで現在の時間を取ってifとかswitchとかで場合分けだな

263:nobodyさん
09/11/03 14:32:48
>sourceがAPIとかなら無視させる
これって可能?

264:nobodyさん
09/11/03 16:11:13
>>263
可能

265:sage
09/11/04 00:25:58 oJ2uxGZI
cron-jobでfehlerhaftって出るのは何でだ・・・
URLコピペで貼ってるから間違いないのに不完全なURLって出る。


時間あけて設定画面開いたら次は重すぎるって出ました。

ファイルが重いのは理解できるがステータス変わるの何でですか?

調べてみたけど分からなかったので分かる人いたら教えてください

266:nobodyさん
09/11/04 01:01:25
>>262
ありがとう!
初心者ながら色々試してみたんだけど、どうにも無視されたり、他の時間帯のこと言ったりする…
実際発言のところにif埋め込むのはこういう形であってますか?質問厨で申し訳ないけど分かる人いたらお願いします。
swich構文もちゃんと設定してるつもりなんだけどなあ

if(preg_match ( "/(こんばん|今晩)[わ和は]/u", $var )){
if($plist = $mes['night']){
$plist = array("こんばんは","こんばんはー");
$key = array_rand($plist);
$post = $plist[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}
}

267:nobodyさん
09/11/04 01:02:46
if($plist = $mes['night']){
なにこれ?

268:nobodyさん
09/11/04 01:08:25
>>267
case ($now_g > '16') && ($now_g < '20') :
$plist = $mes['night'];
swichで時間帯設定したんだけど、発言の部分に「その時間だったら」って内容つけるのに四苦八苦した結果がこれです。

もしかして全然違う?

269:nobodyさん
09/11/04 01:09:07
ごめんなさい、投稿早まった。
上のはswichで設定した分です。

270:nobodyさん
09/11/04 01:15:13
>>209
そういう感じにフォロワーが色々いじってパラメータ変動させられるbotは面白いかもね。
ただしいたずらで無茶苦茶機嫌悪くさせたり病気にもできそうなのと
何よりその手の育成システムはアイデアとプログラムが割りと手間だな。

271:nobodyさん
09/11/04 01:36:06
>>268
意味がわかりません

272:nobodyさん
09/11/04 01:44:35
>>271
えっ!?

switch(true){
case ($now_g > '2') && ($now_g < '7') :
$plist = $mes['smoning'];
break;
case ($now_g > '8') && ($now_g < '10') :
$plist = $mes['moning'];
break;
case ($now_g > '11') && ($now_g < '15') :
$plist = $mes['afternoon'];
break;
case ($now_g > '16') && ($now_g < '20') :
$plist = $mes['snight'];
break;
case ($now_g > '20') && ($now_g < '1') :
$plist = $mes['night'];
break;
default :
$plist = $mes['other'];
break;
};

swichでここまでやるのは合ってますよね…?
その時間帯の属性を発言の部分に埋め込もうとしてこうなりました。
だいぶ間違ってますか?orz

273:nobodyさん
09/11/04 02:58:30
やりたいことは
if($plist == $mes['night']){
なんじゃない?

274:nobodyさん
09/11/04 03:59:33
>>273
ありがとうございます!正解は==なんですね…
早速=の数を直してみたんですが、やっぱり時間設定に反応してくれません。
if($plist == $mes['night']){はもちろん、if (($now_g == '3') or ($now_g == '4') ){ でも試してみたりしたのですが、完全にスルーです。

$now_g = date('G');も埋め込んであるんですが…なんで反応してくれないのかさっぱりです…

275:nobodyさん
09/11/04 04:55:42
とりあえずどの段階で変数が想定外の値になってるか確認してみたら?

276:274
09/11/04 07:17:07
>>275
swichはどうやっても反応しないので、諦めていろいろ試行錯誤してたらやっと反応してくれた!!
if($plist == $mes['night']){ の代わりに if(($now_g >= '10') && ($now_g <= '17')){ を個別に指定してみたらできましたー!
結局反応しなかった理由はよくわかんないけど、<= じゃなくて < になってたのも原因のひとつみたたいでした。

アドバイスがなかったら絶対途中でめげてた。聞いてくれた方ありがとうございました!

277:nobodyさん
09/11/04 07:54:05
botはシステム自体はそんな難しくはないけど
多様性とか面白さとかのアイデア方面がなかなかいいのが思いつかないな。

278:nobodyさん
09/11/06 18:16:08
>>277
そうなんだよなあ。ヘタに@に対して定型文返してくるbotより、
単なるRSS垂れ流しの方がずっと有用だったりする現実。

279:nobodyさん
09/11/06 22:29:14
銀さんのところのをコピペしてやってみてるんですが、
bot.phpにアクセスすると
Warning: preg_match() [function.preg-match]: Unknown modifier '[' in 略/Twitter.php on line 503
Warning: preg_match() [function.preg-match]: Unknown modifier '[' in 略/Twitter.php on line 333 ERROR

というのが出るんだけど何がおかしいのかわからないです
Twitter.phpは23行目をConnector.phpのフルパスに書き換えたのと、
501行目の「var_dump($line);」をコメントアウトした意外弄ってないんですが…
超初心者なので最初phaさんのやつでやってたんですが
何をどう頑張っても改行されなくて
銀さんの方で作ることにしたんですがなかなかうまく行かないです

280:nobodyさん
09/11/07 00:47:57
コメントアウトのつもりが先頭に/1つしかないとかじゃないの。
正規表現でエラー出るってことはそーゆーことじゃないの。

ていうかああしたとかこうしたとか素人が言うよりは
そのいじった行をそのままコピペしたほうがわかる。

281:nobodyさん
09/11/07 05:04:43
>>279
ちゃんとコピペできていないか、実行側にちゃんと送信できていないに1票。

>何がおかしいのかわからないです
まず検索すれば分かると思うけど、Modifierってのは修飾子のこと。
↓マニュアルのURLにも出てくる。
URLリンク(jp.php.net)
でもって「Unknown modifier '['」ってのは「知らない修飾子'['がある」と、
親切に教えてくれてるわけだ。教えられた側が理解できているかは別として。
つまりこの場合、PHPが「(構文に沿えば)修飾子があるはずの場所に、
修飾子でない文字があるのはおかしい」と指摘しているので、
まず最初にその付近を見直すのが定石。

282:nobodyさん
09/11/07 16:49:41
なんも反応ないってことは大体あってたのかな。

283:nobodyさん
09/11/07 16:50:06
サーバーがsafe_modeだとなんでダメなの?

284:nobodyさん
09/11/07 18:37:38
279です。

>>280,281
ご指摘頂いた箇所を見てみたんですが、コメントアウトの//もあってたし
エラーの出てた行はいじってないしで??となっていたんですが
@PAGEのファイルの編集画面で見てみるとUTF-8で転送されてなかったみたいで
何ヵ所か文字化けしてしまっていたのが原因だった様です…すみません
その辺設定出来るエディタ使ってたのに何故という感じですが
(miで編集、Fetchで転送)
とりあえず、なんとかなりそうです
ありがとうございました!

規制中でケータイからなので読み辛かったら申し訳ないです

285:nobodyさん
09/11/08 19:21:21
「○○って言って」ってリプライされた時に○○の部分だけ返すのってどうやるの
phaさんのスクリプト使って出来る?

286:nobodyさん
09/11/08 22:28:42
>>285
reply_pattern.phpに

"○○って言って"=> array(
"○○"
),

でよくね?

287:nobodyさん
09/11/08 23:02:46
いや、そういうことではなくて○○の部分は相手が言った言葉によって変えたいんだ
一部分だけ相手の発言を引用するというか

288:nobodyさん
09/11/08 23:07:58
できるけど処理がややこしくなるから別物になっちまうな。


289:nobodyさん
09/11/08 23:08:01
@aaaの発言:
@bot AAAって言って

@botの発言:
@aaa AAA

ってこと?

290:nobodyさん
09/11/08 23:30:52
reply_pattern.phpに

"復唱"=> array(
"{echo}"
),

って入れといて、reply_random.php側で
reply_pattern.phpから返答文字列を取得してからtwitterに投稿するまでの間の処理にswitch~case(綴り合ってる?)か何か仕込んで、
もし返答文が{echo}だったらという条件判断をさせて、
そこで相手からのリプライの「から」までの間を抜き出してその前後に「復唱します、(抜き出した言葉)ですね」みたいに体裁整えて@とかidとかくっつけて返信、になるかなー

ややこしいかもしれないけどできなくはないはず
携帯からなんでコレが限界

291:nobodyさん
09/11/08 23:35:44
>>290
ごめん忘れてた
「○○」を復唱して ←こんな形式でリプしてもらうとして、ね
鍵括弧でくくってる事と復唱って言葉がポイントってことで

292:nobodyさん
09/11/08 23:42:11
>>289
そうそう

>>290
なるほど…なんとなく理屈は分かった
問題は投稿するまでの処理か…

293:nobodyさん
09/11/09 00:52:01
ある程度の早さで返事することになるとその頻度でTL取得することになるからAPI制限との勝負になるとこもネック

294:nobodyさん
09/11/09 17:18:21
8bitさんの好感度スクリプトを見つけたんだがいまいち分からない。
調べてみても、使い方のヒントになるものは何も…
携帯からなのでURL貼れなくて申し訳ない。

295:nobodyさん
09/11/09 17:25:06
何が分からないのか言ってくれないとニントモカントモ

296:nobodyさん
09/11/09 18:29:28
>>294
なんでそこの作者さんがサポートをやめたのか書いてあるだろ。もう一回読んで来い。
phaさんとこ見てても思うけどマジで初心者多いな。
ほぼ全レスのphaさんすげえ。

297:nobodyさん
09/11/09 19:43:14
>>296
サポやめたくなるのもわかるんだけど
キレてる事をblogに書くのはどうかとも思ったw

298:nobodyさん
09/11/09 19:54:17
あそこのリプライから発言を引用するスクリプト、
ユーザIDとパスワード以外弄ってないのに動作しないんだけど
質問受け付けてないからどうにもならんかった

299:nobodyさん
09/11/09 20:41:52
はじめて見たけど、中身かなり親切に書いてあるじゃん…

>>298
出たエラーでググったりすればなんとなく見えてくるんじゃないか?

300:nobodyさん
09/11/09 20:48:26
>>298
それって
URLリンク(8bitnote.sblo.jp)
で配布されてるnanoka.phpのことか?
ざっと読んでみたけどServices_Twitterも入れないと動かないよこれ

301:nobodyさん
09/11/09 21:26:11
294ですが好感度スクリプトについては説明がないんですよ。
txtには何を入れたらいいのかとか…
試しにサーバーに上げてPHPの方に書いたキーワードをpostしてから、サーバーにアクセスしてみたんだけど空リプライが来るだけ。
サーバーにアクセスしなければ何も動きはないです。

302:nobodyさん
09/11/09 22:20:34
大した量じゃないんだからコードくらい追えよ

303:nobodyさん
09/11/09 22:32:19
>>300
入れてるよ
そのエントリで同じ質問してる人がいたけど結局解決できなかった

304:nobodyさん
09/11/09 23:37:37
スレチかもしれないがWebcronって月額いくらくらいかかる?
フォロワー300で、最低でも5分毎に実行させたいんだが…

305:nobodyさん
09/11/10 00:03:35
>>304
どうせ金払うならちょっといいレンタルサーバーでも借りた方が良くないか。
月500~1000円代からでもcronやPHP5やMySQLが使えるところはあるわけだし。

とはいえサイト持ってないなら宝の持ち腐れだろうし、やっぱ人によるかも。
逆に言えばサイト運営してて、尚且つ何か高度なもん設置したいものがあるのなら、
ちょっといいサーバー借りた方がトータルで見ればいい気はする。

306:nobodyさん
09/11/10 00:24:51
>>304
自宅に24時間起動&ネット接続させられるマシンがあるならそれでスクリプトを動かしてもいいかも
自分はcygwin+cron+w3mでbot動かしてる

307:304
09/11/10 00:56:46
アドバイスありがとう
まさにサイト持ってない持ち腐れする人種なんで、レンタルサーバーは悩んでたんだ
自宅PCも不安定だし、コーヒー代我慢してWebcronのお世話になることにするよ
月額が不安だが…

308:nobodyさん
09/11/10 00:59:51
ソース読めないし全然わかんないって人はBOT作る前に最低限、
PHPスレなりその初心者質問スレなり見たほうがいいと思うんだ。
サポセンとは違うんだし。

309:nobodyさん
09/11/10 01:07:13
>>301
わからんかったらtxtはそのまま上げろと書いてなかったっけ?
うちは普通に動いてるよ

310:nobodyさん
09/11/10 03:05:08
309
ありがとう。
上げなおしたら普通に動きました。

311:nobodyさん
09/11/10 14:50:36
>>304
お試し期間で様子見してみたら?
お試し中でも使用量出るし、一週間で消費したクレジット*4すれば大体の目安はつくと思う


312:nobodyさん
09/11/10 17:45:46
>>304
5分に一回なら月に150円くらいだった記憶。確信は無いが。

313:304
09/11/11 20:56:33
ありがとう。お試し始めてみた
150ならサーバー借りるより全然お得だな

314:nobodyさん
09/11/11 23:48:17
特定の語句を含む発言をRTするBOTのRTが、フォロワーのタイムラインに表示されなくなった・・・

315:nobodyさん
09/11/12 07:18:55
>>313
同じ事気になってた。
こっちはお試し期間中に色々試す暇がなくてどうせ安いからとクレカで購入してみたが
消費量チェックする度にチマチマ増えてるんで何か焦るw
五分に一回でもフォロワ300人は怖いよね、リプライの量が。

cron-jobが使えたらな。
ファイル大きいとか失敗ミャハ☆とかばかりでまともに動いてくれないんだ。俺の日頃の行いが悪いんかな。

316:nobodyさん
09/11/14 12:06:15
ばずったーから単語を持ってくるのってどうやんの?

317:nobodyさん
09/11/15 07:57:14
スクレイピングしろ

318:nobodyさん
09/11/15 09:02:34
URLリンク(www.sukechan.net)
これってソース丸コピペしてIDとパスワード変えるだけじゃだめ?
あとできればキーワード全部じゃなくて1番目だけを取得してポストしたい

319:nobodyさん
09/11/15 10:40:05
>>318
・HTTP_Clientが必要
・for文消して$iを固定で1にする

てか聞きたいならやってみて出たエラーくらい書きなさいな

320:nobodyさん
09/11/15 20:17:39
phaさんのスクリプトを使っています。

reply_random.php+reply_random.phpを利用、で
誰かに@を貰い、反応する単語がある場合に限り
2分後にreply_random.phpから文章をランダムに返し…

さらに8分後(=計10分後)にreply_random.phpから文章を
ランダムに返す事ようにしたい(1回のpostに対して、時間差で2回replyさせる)、
のですが、ヒントを頂けないでしょうか?

やはりスクリプトと根本から弄らないと無理でしょうか?

321:nobodyさん
09/11/15 22:01:01
a

322:nobodyさん
09/11/15 22:01:53
>>320
PHPの書き方の問題なの?それともアルゴリズムの問題?

323:nobodyさん
09/11/15 23:56:13
>>320
自分ならこうする、という参考意見だと思って読んでね

前提条件として
4.txt(2×4回=8分後の処理で時間差リプライが行われる発言を記録するためのファイル)
3.txt(2×3回=6分後の以下同文)
2.txt(2×2回=4分後の以下同文)
1.txt(2×1回=2分後の以下同文)
0.txt(2×0回=今回の以下同文)
と言うファイルを用意して全部書き込み可能なパーミッションにしておく

reply_random.phpは二分おきに起動される

(続く)


324:nobodyさん
09/11/15 23:57:19
続き

--------
そんでreply_random.phpにこんな処理を追加する
0.txtに記録された発言に対して二回目のリプライ処理を行う
0.txtの中身を空にする
1.txtの中身を0.txtにそっくり移し変える
2.txtの中身を1.txtに以下略
3.txtの中身を2.txtに以下略
4.txtの中身を3.txtに以下略
4.txtの中身を空にしておく

>>290を参考に
特定の単語に対しては特定の処理をさせるようにして、
特定の単語が含まれるリプライを受け取った場合はまず一回目のリプライを返した後で
4.txtに今回返したリプライのユーザー名(@の後につける奴ね→$replies2[$i]["screen_name"])と
メッセージID(in_reply_to_status_idとして必要→$replies2[$i]["id"])と後必要なら名前($replies2[$i]["name"])とか書き込む
(一行ずつ項目ごとに半角カンマとかで区切って)

これで出来るような気はする。だれかもっと詳しい人いたら突っ込みとか入れてほしい。
ただ受け取るリプライの数が多かったりしたらファイル壊れるんじゃ、とかそういうのが気になる、その辺は自分も詳しくないんでパス
だれかもっと詳しい人いたら突っ込みとか入れてほしい。
必ずローカルでテストしてからにしてね
がんばってね

325:nobodyさん
09/11/15 23:57:21
2個モジュールをおいて各の自動実行間隔を2分と8分にすればいいだけ

326:nobodyさん
09/11/16 11:34:55
もうちょっと汎用的に作ろうよ

327:320
09/11/16 18:31:33
>>323さん、>>325さん、ありがとうございます。
自分のやりたい事は>>325の方法で出来そうなので、
試してみたいと思います。有り難うございました!

328:nobodyさん
09/11/16 19:25:29
>>319
とりあえずHTTP_ClientっていうのをDLしてServices_Twitterと同じ要領でbotのサーバーに入れてみた
で、>>318をコピペして動かそうとしたがエラー出ないしpostもされなかった

329:nobodyさん
09/11/16 20:22:18
エラー出せ

330:nobodyさん
09/11/16 21:00:56
>>329
<丶`Д´>呼んだニカ?

331:nobodyさん
09/11/17 10:06:08
いつもいつもエラーが出るって言う初心者なんでそのエラーメッセ書かないかな。

332:nobodyさん
09/11/17 10:24:17
自分がわからない文章に意味があるとは思えないからだろうねえ

333:nobodyさん
09/11/17 17:07:00
半自動フォローでbotがフォロー返す時に「フォローしました」のメッセージをつけたいんですが、
どう書き変えたらいいんでしょうか?

ソースはこちらを使わせて頂こうと思っています
URLリンク(dream-aquarium.net)

よろしくお願いします

334:nobodyさん
09/11/17 19:50:15
>>333
URLリンク(apiwiki.twitter.com)

335:nobodyさん
09/11/19 21:13:08
Postごとにアイコンを変えるってのをしたいんだけどどうすればいい?
例えば喜のPostのときは喜んだアイコン、怒のPostのときは怒ったアイコンって感じで

336:nobodyさん
09/11/19 21:37:00
Twitterにそんな機能あんの?
変えるのはやってできないことはないと思うけど、それだと喜のあとに怒のpostしたら結局怒アイコンになるんじゃ

337:nobodyさん
09/11/19 21:56:10
>>336
仕様書見る限りupdate_profile_image使えばいいっぽいんだけどどうすればいいのかわからなくて
喜怒哀楽は例であって作りたいのはある作品のキャラごったにbotを作りたいんだ
その台詞を言ったキャラのアイコンでPostやリプライを送る。どんなキャラが出てくるのかはランダムで

338:nobodyさん
09/11/19 22:07:55
いやだから最後に送ったアイコンが全ての発言に付加されるのでは?

339:nobodyさん
09/11/19 22:13:57
ああ、過去の発言も全部その瞬間にアイコンが変わっちゃうんだな
Post間隔長いのならわざわざ過去の見ないだろうがリプライとかは無理か

340:nobodyさん
09/11/19 23:54:38
発言ごとにアイコンを保持はできんから>>336だし
クライアントによってはアイコンをキャッシュするから変えてもすぐには反映されんかもしれん。

341:nobodyさん
09/11/20 15:58:52
こないだ携帯の白いお父さんが毎回アイコン変えてたけど
同じキャラがキョロキョロするとかならかわいいと思った

342:nobodyさん
09/11/20 23:48:02
>>336
喜怒哀楽の感情ごとにアカウントとってリストで読ませる

343:nobodyさん
09/11/21 00:07:11
これをやってみようと思うんだけどcURLってのがわかんね
URLリンク(d.hatena.ne.jp)

344:nobodyさん
09/11/21 00:08:06
php勉強しれ。

345:nobodyさん
09/11/23 20:10:45
OAuth認証(参考:URLリンク(wolf.silk.to))でbot動かしてる人いる?
in_reply_to_status_idつけてpostするようにしても、付与されないんだけど・・・

346:nobodyさん
09/11/23 22:22:45
phaさんのプログラム使わせてもらってるんだけど、
ランダムリプライと、指定した単語にリプライの両方使ってて、
片方のBOTは反応単語以外のリプライを受け取ると
ちゃんとランダムリプライしてくれるんだが、
片方は反応単語以外のリプライを受け取ると
必ず空リプライしてしまうんだがなんでだろう?

ちなみに、おかしいと思って、きちんと動作する方の
プログラムまるまるコピペしてユーザー名書き換えて
アップロードしてみたり、Services等その他諸々の
フォルダも全部アップロードし直したりしたけどだめだった…


347:nobodyさん
09/11/23 22:28:39
何を言っているのか分からない

348:346
09/11/23 22:41:32
ごめん、つまり空リプライの原因は何なのかって事が聞きたかった。

今自分で読み返してもなに言ってるか分からなかった

349:nobodyさん
09/11/23 22:50:38
変数の中身でも出力させてみたら?

350:nobodyさん
09/11/24 01:09:13
>>345
そっちがどういう風に送ってるのか知らんけど
先頭に@名前 ついてないと無効って仕様はあるみたいだが。


351:nobodyさん
09/11/24 04:54:49
>>348
自分のフォロワーに同じことで悩んでる人がいたなw
その人もbotを複数作ってて、ある一つのbotが空リプライするって、同じこと呟いてたけど、まさか…?w

それはともかく、自分のbotも反応ワード以外のリプライを貰うと空のリプライしてたんだけど、textのデータを弄ったら直ったよ。
サーバにアップしてあるtextのファイルがあるでしょ?
どうやらphaさんのは、反応ワード以外のリプライを貰うと、そのtextファイルに書いてあることをリプライするプログラムらしいので、そのtextファイルに、分からなかった場合のセリフを書き込めば良いってわけ。
そうすれば空のリプライしなくなると思う。

352:345
09/11/24 09:40:53
>>350
「@名前 」つけて名前とIDが違うと付与されない的なのは把握してるつもりなんだけどね、なんかうまくいかなくて・・・
やり方が間違ってるのかなぁ
ちなみにpost部分はこんな感じにしてます

$req = $to->OAuthRequest("URLリンク(twitter.com)",array("status"=>$aaa, "in_reply_to_status_id"=>$bbb), "POST");
$aaaは「@名前 返信内容」
$bbbはステータスID

俺恥ずかしいこと聞いてそうだな・・・

353:nobodyさん
09/11/24 12:25:40
>>348
tw.txtの中身が空であるか、改行して空白の行がありませんか?
またサーバーの方で確認して文字コードはUTF-8、改行コードはLFになっていますか?

354:nobodyさん
09/11/24 21:18:07
BOT作ってどうすんの?
作る価値ねーしwwwwwwwwwwwww

355:nobodyさん
09/11/25 02:02:43
>>354
そう思うんならそうなんだろう。
お前ん中ではな。

AA略

356:nobodyさん
09/11/25 03:17:51 6oiYyRxa
cron-job.orgで「cronファイルが大きい」って言われた。
ググっても解決策ゼロ。
誰か助けてください。。。

357:nobodyさん
09/11/25 03:21:26
cronファイルを小さくしろ

358:nobodyさん
09/11/25 03:27:51 6oiYyRxa
>>357
どうやって?
もう削るとこないです・・・

359:nobodyさん
09/11/25 03:28:38
バックスペースキー

360:nobodyさん
09/11/25 03:31:21 6oiYyRxa
>>359
それってどういう意味ですか?
もう消す場所ないです;;;

361:nobodyさん
09/11/25 03:35:18 6oiYyRxa
こんどはURLが違うって言われた・・・あってるのに…

362:nobodyさん
09/11/25 08:01:11
GoogleAppEngineでcron動かしてる人いたら教えて

2分間隔でリプライ返すbot
動かしてるんだけど、
cron-job不安定だったからGAEに移行。
java使ってGAEでcron(2分おきに設定)
動かすまではうまくいったんだが、
プロジェクトをデプロイして
しばらくたつとリプライを拾わなくなる。
デプロイ直後は普通に拾うんだが…
AppEngine経由でPHPのページにアクセスすると
直前にリプライ飛ばしてても
「2分以内の@はありません」ってでる。
直接アクセスするかcronjob経由でPHP叩けば、
ちゃんとリプライ拾うんだけど…。

バージョン変えてデプロイし直してもうまくいかない。
何がおかしいんだろうか…

363:nobodyさん
09/11/25 08:08:35
もうちょっと要点をまとめてくれ。

364:362
09/11/25 08:26:52
わかりづらくてすまん。
botにリプライ飛ばしたとき

・直接PHPページにアクセスするとリプライ拾える
・GAE経由だとリプライ拾えない。(デプロイ直後は拾えるがそのうちダメになる)
・GAEのcronjobにはエラーなし
ってことなんだ…

365:nobodyさん
09/11/25 14:21:04 w36IBMdL
これ動かなくない?ただコピペしただけじゃ駄目なの?

URLリンク(d.hatena.ne.jp)

「PHPでtwitterに投稿する」の時点で躓いた。

366:nobodyさん
09/11/25 14:22:07
エラーメッセージくらい見れよ。はぁ・・・。

367:nobodyさん
09/11/25 14:22:47
大方全角スペースが入ってるとかだろ

368:nobodyさん
09/11/25 14:24:12 w36IBMdL
どうやって見るの?

369:nobodyさん
09/11/25 14:35:02
エラーの見方も分からんでプログラムやってんの?

370:nobodyさん
09/11/25 14:39:11
まずはそれを設定したhttpdのエラーログ見ろよ

371:nobodyさん
09/11/25 21:34:37
cron-job.org使ってつまずいてる人が多いけど、cron-job.orgはマトモに使えるレベルの安定性じゃないと思う。
確かに無料だけどcron-job.orgの設定で毎日毎日苦労してるんなら
月100円くらい出してwebcron.orgを使うことを個人的にはお勧めしたい。動作は安定してるよ。

372:nobodyさん
09/11/26 07:22:56
クレカの審査落ちるから使えないんだよ!!

373:nobodyさん
09/11/26 10:32:51
まず働けよ

374:nobodyさん
09/11/26 12:12:55
webcronが新しくなったとたん全然動かなくなったんだけど
同じ症状の人います?

375:nobodyさん
09/11/27 19:39:09
>>356
ファイル大きいって言われてもちゃんと動くぞ。
動かないならソースがおかしいかも。エラーは出なくてもどっかしら
汚いソースの部分があるんじゃないかと。

それより勝手にNeinになる仕様どうにかしてくれ。

376:nobodyさん
09/11/28 07:10:32 M2/cHCZP
phaさんのを使わせてもらってて、replay_random.phpが上手く動かないから自分でソース読めるようになりたいんだけど

replay_random.phpの内容、↓これで解釈あってるの?
//コメントは自分が書いたものです.

//リプライの文章をつくる
for($i=0;$i < count($replies2);$i++){ //リプライの回数(replies2)分、以下の処理を繰り返す
$text = ""; //メッセージ用の変数を宣言
if($useReplyPattern === TRUE){//特定の単語に反応させたいときはこの処理を行う
require_once($replyPatternFile);//先にreplyPatternFileで定義したファイルを読み込む
foreach($reply_pattern as $pattern => $res){//配列$reply_patternの中身について端から以下の処理を行う。そのとき一個づつ$patternに代入していく
$pattern = preg_replace("@¥@@","¥@",$pattern);//$patternの中に"@¥@@"が有ったら"¥@"に変換??
if(preg_match("@".$pattern."@",$replies2[$i]["text"]) === 1){ //もしも、 "@".$pattern."@"っていうのが $replies2[$i]["text"]の中に有ったら?
$text = $res[array_rand($res)];//$resの中からランダムに選ぶ
break;//おしまい
}
}
}

377:nobodyさん
09/11/28 08:45:14
全部確認してくださいじゃなくて具体的に分からないとこを聞け
正規表現を特に聞きたいんでしょ?

378:nobodyさん
09/11/28 09:21:58
//メッセージ用の変数を宣言
というか初期化だな。

//$patternの中に"@?@@"が有ったら"?@"に変換??
なんで@なんて使ってるのか知らんけど左右の@は区切りのはず。
大抵/@/や#@#あたりじゃないんかな。だから@を@に置き換えてる。
他の部分知らんがなんでだろ。

379:nobodyさん
09/11/28 19:52:45
phaさんのスクリプトの1.41使ってるんですが

リプライの無限ループを制御する
$replyLoopLimit = 3; //何回連続でreplyを返されるとループを中断するかを設定します。

が、効いてないような?
サーバーやPHPのバージョンとかに関係あったりするんでしょうか?

380:nobodyさん
09/11/28 20:18:57 tYVMHZ37
>376
なんか急にreplay_random.phpが動かなくなったよね…
サーバー入れ替えしただけ(中身同じ)なのに、リプ返さなくなった。
ファイルマネージャからアクセスすると「送られたメッセージはない」って出るのに、Twitterから送ると真っ白。
自分だけかと思ったけれど何人もいるらしいから、クライアントとか関わるのかな。

>379
自分もそう。4で入れてるのに1回しか返さないわ…

381:nobodyさん
09/11/28 21:06:37
ここのスレの人はみんなphaさんとこの使ってんの?

382:nobodyさん
09/11/28 21:12:58
え?

383:nobodyさん
09/11/29 00:24:12
ランダムポスト・@もらったあとのランダム&パターンリプライ→phaさんのとこの
TL上の単語に反応させてリプライ→プログラミングを始める10の理由からコピペ
↑のに加えてどのポストに反応したかの紐付け→銀さんのBOTのin_reply_to_status_idの記事から

今のとここんな感じ

384:nobodyさん
09/11/29 01:37:43
>>381
私はあそこのは使ってない。
確かにphaさんのはカスタマイズしやすくて良いんだけど、自分は「プログラミングを始める~」のとこで公開されてるソースを改造して使ってる。
TLに反応するプログラムも、リプライも定時発言のも全てそこので事足りる気がする。

385:nobodyさん
09/11/29 02:26:40
一からコード書いてる俺は異端なのか?
全部自分で書いた方が楽しいじゃん

まぁServices_Twitterは使わせてもらってるがなー

386:nobodyさん
09/11/29 04:49:52
自分はまだ始めたばっかりだからメインでphaさんの使わせてもらってるよ
どういう流れなのかコメントがわかりやすく付けられてるし

サブで時間帯別のと好感度のものを組み合わせてるが
そっちはどこ改造したらいいのかもまだわからんw

387:nobodyさん
09/11/29 14:37:06
>>274 の、時間別に返事が違うっていうソースを入れたいんですけど、
自分は今phaさんの配布しているリプライソースを使っています。
phaさんの配布ソースのどの部分に入れたらいいでしょうか!
リプライパターンphpとも組み合わせたい。

//リプライパターンと照合する
if($useReplyPattern === TRUE){
require_once($replyPatternFile); ~(略)

の前?それとも後?全然場所が違いますか。
それとも↑のソースも色々変えないと出来ないですか?
プログラミングも何もかも初心者なので色々と試したのですがうまくいきません。
改変箇所等教えていただきたいです!
参考にしたのは
URLリンク(d.hatena.ne.jp)
の「時間帯によって反応を変える」って記事

>>362
GAEはサーバーと距離が短くなくちゃタイムアウトしてしまうらしい?
オススメは@pages。1分間隔でまわせるみたいです。
自分はまだ使ってませんがいずれ入れたい!

388:nobodyさん
09/11/29 14:41:19
>>387
PHPの書き方学ぶことをオススメする

389:nobodyさん
09/11/29 20:59:32
有料でもいいけど一番安定してBOTが動く鯖ってどこだろう?

390:nobodyさん
09/11/29 21:51:04
>>387
どこに入れればいいかじゃなくて、入れて動かしてみて、うまくいかなかったときに聞いたほうが
答えをもらえる確率は上がると思うよ
ここはphaさんソースの改造方法について教える場所ではないからね

391:nobodyさん
09/11/29 23:21:39
>>381
自作でちょびちょびいじりながらやってる。
ていうかここってBOT製作支援スレであって、配布BOT利用支援スレじゃないと思うのよね。
まあわかる範囲では質問にも答えるけど。
しかしなるべくメンテフリーで面白いBOTってのはなかなかうまいこといかんね。

392:nobodyさん
09/11/30 07:43:42
botが全て沈黙しているのは自分だけでいいよ…

昨日まではちゃんと動いてたのにいきなり無言になりおった

393:nobodyさん
09/11/30 21:09:26
>>392
サーバーの仕様が変わったとかcronファイルが壊れた…とか?

394:392
09/11/30 21:46:49
>>393
ありがとう。
とりあえずphaさんの使用してて、ファイル全入れ替え+別鯖(さくらから@pages)に移動して実行してるのに、同じ状況。
ほんとにいきなりリプライしなくなったので原因がさっぱりわからない。
もし同じ症状のひとがいたらと思ったけれど、いないのかな?

395:nobodyさん
09/11/30 22:10:29
>>394
API規制じゃないの

396:nobodyさん
09/12/01 00:22:49
API規制ってアカウントごと?それともIP?

397:nobodyさん
09/12/01 00:40:46
@pagesは反応にぶいよ
cronが動いててもすぐ接続がタイムアウトしちゃうらしい
さくらのBOTに比べて格段に反応が鈍い

398:nobodyさん
09/12/02 13:36:20
無料だからなぁ文句はいえんだろ

399:nobodyさん
09/12/03 09:37:10
cron-job.orgが不安定すぎるのでGoogleのAppEngine試してる
大体は安定して叩いてくれてるけど、
実行時間が毎日1分~2分ずつくらい遅れてきてるのが気になる

400:nobodyさん
09/12/03 12:35:16
プログラム自体を変えたら、cron-jobでも全然気にならなくなったなぁ。
cronが度々アクセスに失敗しても、貰ったリプライには全レスするし、もうこれでいいやってなってる。

401:nobodyさん
09/12/03 18:06:44
>>400
プログラムは自作?

402:nobodyさん
09/12/04 02:13:13
自分もAppEngine試してるけど半日で止まるわー
8つ回してるけど1つだけ何度上げても止まる
鯖はさくらで中身全部同じなのにわけわからん…
GAE使ってる人はJAVAとPythonどっちでやってる?

403:399
09/12/04 11:17:32
>>402
遅れはするが止まるまではいかないぞ?
実行自体はほぼ安定してるし…ちなみにJAVA

404:nobodyさん
09/12/04 12:39:33
cron-job.orgを使ってるんだが、ドイツの日付が変わった瞬間から設定が勝手にNeinになる
このスレ見てると同じような不具合多いみたいだし、
webcronとやらに移ったほうがよさそうだね
ただ、自分のクレジットカード作れる年じゃないから
またカーチャンに個人情報洩れるんじゃないのって渋られそうだw

405:nobodyさん
09/12/04 12:58:49
ドイツの日付が今日になったあたりからcron-job.orgに繋がらなくなった(DNSエラー)んだけど…ドメインの期限切れか何かかな。

406:nobodyさん
09/12/04 13:09:03
俺もGoogleAppEngin使ってるけど安定してるよ
止まることも遅れることも、今のところない
ちなみにPHP

407:nobodyさん
09/12/04 14:03:06
Googleのって、Macだと無理っぽい?
botのためにブートでWindowsを立ち上げるのもなんだかな…。

408:nobodyさん
09/12/04 14:47:20
GoogleAppEngine bot twitter phpでぐぐったら
一から十までcronの動かし方を説明してくれてるページをみつけて歓喜したんだが
肝心のソース説明画像がキャッシュに残っていなかった…orz

409:nobodyさん
09/12/04 15:05:25
さくら使ってる人ってcronもさくらで動かしてる?
安定させたくて@pagesからさくらに移ったんだけど負荷がかかるからってcron止められてしまった
結局cron-job.org使ってる

410:nobodyさん
09/12/04 16:23:12
>>408
画像じゃなくてテキストで説明書いてくれてるところがあるだろ
もうちっとググれ

411:nobodyさん
09/12/04 17:36:16
GAEに関してはモノクロ二階調ってところがわかりやすかったらしいが今は見れなくなってるな
どうして消したんだろう

412:nobodyさん
09/12/04 17:50:57
ホントだ、記事消えてるね…
たしか消えた記事内で参考にしたと書かれていたブログ記事の方は
まだ残っているから、そっちを探せば出来るとは思うけど

413:402
09/12/04 20:39:49
>402だが
今日見直したら止まってると思われた奴はまた動いていた
GAEはタイムアウトのタイミングがシビアなのかもしれん…
>411のサイト見て作ったのでJAVAで動かしてたが
何か問題でもあったのかな

414:nobodyさん
09/12/04 22:54:07
噂の参考サイトがなくなってGAEの動かし方が分からないぞ

>>413
GAEって30秒でタイムアウトじゃなかったっけ、それにひっかかってるとか?

415:nobodyさん
09/12/04 23:09:13
質問厨に疲弊して消したらしいぞ。>モノクロ二階調

今日の記事に書いてあった。

416:nobodyさん
09/12/04 23:09:32
モノクロ2階調さんとこが記事消したのは「サポートしないよ」って書いてるのに
botのDMとコメント欄に問い合わせ多かったからだってさ。
再掲載する予定も今のところ無いみたいね

>先日までこちらのブログでGoogleAppEngineのcronjobを使ったbot管理の方法を
>記事にしていましたが、私自身のtwitterアカウントが非公開の為
>当方が管理しているbotにDMを送ってこられる方、サポートをしていないと
>申し上げているにも関わらずコメント(承認制にしてありました)でのお問い合わせが多く

>なんかもうバッタンしてしまいました…
>仕事で忙しいせいもあるので、自分に余裕がないのが悪いとは思いますが…

>現状記事の再掲載は未定です。良い解説記事が見つかるのを祈ってます。
>その際はそちらを管理されている方の負担にならないよう、
>「人事を尽くす」努力をお願いします。(私が言う事ではありませんが…)

417:nobodyさん
09/12/04 23:17:09
質問厨はどこにいっても害しか産まないのか
地道にやるしかないかなぁ
>>415-416情報ありがとう

418:nobodyさん
09/12/04 23:17:31
cron-job.orgが勝手にneinになるのってやっぱ向こうが日付変わる頃だよね…
ところで勝手にneinになるのとjaのままのとがあるんだけど何か条件あるのかな

今9個job設定しててそのうちの2個はいつもjaのままなんだけど
post内容が違うだけでほぼ同じソースなんだよね…
ファイルサイズもそんなに重くない…というかneinになっちゃうやつのほうが軽い奴もある
あと勝手にneinなるのはfehlerhaftも出やすいみたい…

419:nobodyさん
09/12/05 00:08:03
botの作り方系のブログは、どこも
「○○行目でエラーが出るんですけどどこがおかしいのか分かりません」
↑どんなエラーとも書いていない。結局全角スペースが入っていたとかそういう問題
「○○を書き換えて、って書いてありますが場所がわかりません」
↑その記述は一箇所しかないから探せば見つかる

とかそういう質問山盛りだからな…モノクロ二階調さんのところは本当にお疲れ様です、としか…

420:nobodyさん
09/12/05 00:27:12
ツリー型の質問掲示板のタイトルに「教えてください」ってのが10年前からあったしな。
あとよくわかってないのに自分の解釈をやたら書く質問者も。
相手はエスパーじゃないんだから教えて欲しいことを伝える努力は必要だわな。

421:nobodyさん
09/12/05 00:38:08
とりあえずGAEでcron動かすのやってみよう。。。

>>418
基準はよくわからんが、やっぱり無料だし文句は言えないところか。
ただ、neinになるとかの条件はヒントだけでも載せてくれると助かるね

>>419-420
質問するにも初心者(笑)なのが多いのか。
ググり方も分からないやつなのかな
てかたまに偉そうなやついるよね、上から目線の。

422:nobodyさん
09/12/05 00:47:40
教わらないとわからないって人はそれなりの割合いる。
エラーメッセージでぐぐれば問題を絞れるはずだが、
ぐーぐる先生の資料集めとしての使い方が思いつかない人はそれなりの数いる。
WikiPediaみたいにまとまってたり聞いたらすぐ答えてくれるようなとこしか行かないのだろうし。

423:nobodyさん
09/12/05 21:07:44
>>416
しかしbotの方にDM送るなんてひどいな
なに考えてんだ
自分もbot作ろうとしてるのにそのbotに関係ないメール送られて気持ちとか考えないのかね

424:nobodyさん
09/12/05 21:49:15
自分も最初は初心者だったが…
ある程度は自分で調べないと何かあった時に対処できんから恐いわ
phaさんのしたらばのは初心者(笑)ホイホイにならないことを祈る

425:nobodyさん
09/12/05 22:45:17
>>424
それマジ心配してる。でも今もう既にそうなりつつあるような…。
phaさんのプログラム以外の質問とか、PHPと全然関係ない質問多い気がする。
あまりに初心者すぎな質問であふれかえってphaさんが
疲れてしまってサポート放棄されたり、
最悪配布を中止されたりしてしまうんじゃないかと不安だ……。

426:nobodyさん
09/12/06 01:00:27
URLリンク(d.hatena.ne.jp)
↑ここを参考にしてbotを作ってみたのですが、エラーが出て上手くいきません。

参考にして書いた(と言うかほぼ全てコピペです)のが下記のphpです。
URLリンク(opmet.s332.xrea.com)
(この内容を twitter_bot.php に保存して、下記のサーバにアップ)
Apache 1.3.37
PHP 5.2.5

このPHPを実行したところ、下記のエラーが出ます。
Warning: simplexml_load_file(URLリンク(pcod.no-ip.org)) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 500 INTERNAL SERVER ERROR in /xxxx/twitter_bot.php on line 22
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "URLリンク(pcod.no-ip.org)" in /xxxx/twitter_bot.php on line 22

このスレも読みましたが、「調べりゃわかる」という事しか書いておらず、
色々ググってみたのですが、解決方法が見つけられませんでした。

どのように修正すれば解決するでしょうか?

427:nobodyさん
09/12/06 01:07:16
external entityのロードに失敗してる

428:nobodyさん
09/12/06 01:54:58
>>427
そうですね、failed to load external entity とありますからね。
これは、どのように修正すれば解決するでしょうか?

429:nobodyさん
09/12/06 02:05:31
22行目の処理でなんか失敗してるんでしょ?
サイトから情報引っ張ってくるんだったら、サイトの読み込みに失敗したとか、searchの条件に合わないとか
そんな感じなんじゃ

430:nobodyさん
09/12/06 02:13:57
>>429
では、例えば検索語を "hogehoge" にするとします。

URLリンク(pcod.no-ip.org)

これをRSSリーダーで取得すると、xmlファイルが正常に取得できています。
つまり、サイトからは読み込みができているわけです。

これが上記のPHPになると必ずエラーが出ます。この点が何故かわからないのです。
xmlファイル自体は正常に取得できていますので、PHPの記述に何らかの問題が
あるのだろう、と推測しているのですが…

くどくて申し訳ありません。

431:nobodyさん
09/12/06 02:27:44
ぐぐれよ

432:nobodyさん
09/12/06 03:13:19
googleのcronがうまく動かない\(^o^)/
某サイト様のをまんまコピペしたんですけど、jobをみると404エラーになるんです

<cronentries>
<cron>
<url>/crontest</url>
<description>crontest the run every 2 minutes</description>
<schedule>every 2 minutes</schedule>
<timezone>Asia/Tokyo</timezone>
</cron>
</cronentries>
のurlエリアはphpのアドレスではないんですよね?

433:nobodyさん
09/12/06 04:51:05
>>432
お前さんがGAEで作った領域のアドレス入れるべし

434:nobodyさん
09/12/06 09:26:28
>>431
ぐぐってわからなかったのでここに書きました。

435:nobodyさん
09/12/06 11:25:19
設定ファイルから反応する語句リストを読み込んで正規表現でマッチングさせて指定した関数を呼び出すか対応するセリフリストを呼び出してランダムに一つ発言させるコードならさっき出来上がった(バグ取りなう)けど、必要なら公開しても良いよ。@PHP

436:nobodyさん
09/12/06 11:40:41
>>435
よろしくお願いします!

437:nobodyさん
09/12/06 11:44:11
>>430
22行目だけ動かしてみたんだけど、うちの環境でも同じエラーになった
なんだろうなぁ

>>435
そういうときは「必要じゃないかもしれないけどうpする」のが2ちゃんのしきたりだろ
しきたり守れよ

438:nobodyさん
09/12/06 12:58:19
>>437
ちょっと別の検索サービスを試してみました。

$xml = simplexml_load_file('URLリンク(twiple.jp)'.$search_word.'&lang=ja');

これで例のエラーは出なくなりました。>>429 さんの回答で正解のようです。

が、今度は何のエラーも表示されないのですが、ちゃんと動いているわけでも
ないようなのです。まだ他におかしいところがあるのか…

$followed と $now_time が定義されていないので、

$followed = array();
$now_time = time();

を定義してみましたが、状況は変わらず… 的外れだったようです。

439:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/06 13:17:05 I4htWoWi
>>437
ご指摘ありがとうございます。
申し訳ないのですが、まだ公開できるほどバグ取りが進んでいません。
今日中には公開できるようにしますのでしばしお待ちください。
セリフリストの文法ですが、
@.*バルス!.*=バルス
とした場合は正規表現で.*バルス!.*に反応しセリフファイル「バルス」を読み込みランダム一行をリプライします。
~.*爆発しろ=bakuhatsu
の場合は関数「bakuhatsu」を呼び出し発言を第一引数とします。
関数は個別にプラグインファイルで対応しますので根幹のシステムへの変更は行われません。
=が入る発言に対してバグがあるので=が入る発言への対応を検討中です。
それだけですが現在公開できるように早急にバグ取り、公開用の(既存の)設定クリーン中です。本当に申し訳御座いません。
トリップも付けていませんでした。すみません。
元来自分用に開発していたもので…

440:nobodyさん
09/12/06 18:03:07
>>433 作った領域ってことは
http://あいでぃー.appspot.com/ の http://あいでぃー.appspot.com/なんかつくったやつ
をhからお尻まで全部ってことですよね?
上のも下の「なんかつくったやつ」のアドレスもどっちもいれてうpしてみたんですが、
やっぱり404エラー…
javaの方の
package testcron;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import javax.servlet.http.*;
@SuppressWarnings("serial")
public class TestcronServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
try {
URL url = new URL("phpのあどれす");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
resp.getWriter().println(line);
}
reader.close();
} catch (MalformedURLException e) {
resp.getWriter().println("URL faild : " + e);
} catch (IOException e) {
resp.getWriter().println("URL faild : " + e);
} } }
が間違ってるんでしょうか。

441:nobodyさん
09/12/06 19:25:38
>>437
XMLの取得自体はできてるみたいだけどね
print $xml->entry[1]->summary;
みたいなので一応見れるし…

>>439
そこは「しきたり(笑)」ですませて欲しかったよ!
必要としてる人もいると思うので、公開できるときに公開してくれればいいと思うお( ^ω^)

>>440
○○○Servlet.javaって作ってるよね?
それの ○○○ を書くはず。↓
<cronentries>
<cron>
<url>/○○○</url>
<description>crontest the run every 2 minutes</description>
<schedule>every 2 minutes</schedule>
<timezone>Asia/Tokyo</timezone>
</cron>
</cronentries>

442:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/06 19:53:33
関数呼び出し手順に変更です。
reply.listに~<正規表現>と記述した場合、関数に渡される文字列は@IDを除いた単純発言部分となります。
プラグインファイルを作りたい香具師は準備願います。
おまけにどう読むのプラグインを添付します。(requires nkf,kakasi)ご活用くだしあ。
補足として$prof[]でボットのプロフィールにアクセスします。(別途ファイルを用意してあります)
$conf[]でついった関連設定ファイル(以下同)

公開用ぺーじの設計に手間食ったりしてます。しばしお待ちを。

443:nobodyさん
09/12/06 20:07:15
>>442
期待!

444:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/06 20:19:49
何度も申し訳ないですが、プラグインファイル(作ってくれそうにないが)の使用を規定します。
1. <?php で始まり ?> で終了すること。
2.呼び出される関数を保持すること。呼び出される関数が主処理関数であること。
3.受け取った文字列を処理する場合(特に外部ファイル、プログラムへの受け渡しをする場合)h(文字列);でエスケープすること。
4.$debugはデバッグスイッチです。d(変数);でダンプ可能ですので積極的なデータ表示をお願いします。
だいたいこのくらいでしょうか。呼び出し元の@IDは$idで取得可能です。
その他、プラグインファイルは/AI/に保存願います。利用の際は/conf/plugins.listに
loadplugin('hogehogewaros.plg');のように拡張子込みで登録お願いします。
人格?の利用を前提としているので初期設定スクリプトを書いています。お待ちください。

445:nobodyさん
09/12/06 20:24:06
>>441うおおおおできました!ありがとうございました!
プログラム開くと○○○が先頭大文字になってて
大文字のままいれたらだめでしたが
小文字にしたら動きました!
って前にこれ一度もう試したんですがその時は404エラーでたんですよね…なんでエラーだったんでしょうか
まあとにかく動いて嬉しいです!
441さまも433さまもありがとうございました!

ついでにもう一つおたずねしてもいいでしょうか
一つのプログラムで複数のphpを動かす場合
try {
URL url = new URL("phpアド");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;

while ((line = reader.readLine()) != null) {
resp.getWriter().println(line);
}
の後ろに同じ文を重ねていけばいいんでしょうか

446:nobodyさん
09/12/06 23:42:18
>>440
自分もそのコードが載ってるブログを参考に作ってるんだが、
ウェブ上で動いてるのを確認する方法として紹介されている
http://設定したApplication id.appspot.com/設定したプロジェクト名
にアクセスするとxmlコードが剥き出しで表示されてしまう
これは何らかのミスがあるということなのかな…?
成功した場合はどのように表示されるのだろうか

447:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/07 00:16:02
遅れています。
圧縮に手間を食っているようです。でき次第公開します。

448:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/07 01:30:55 MdLiWJgY
URLリンク(knowledge.ddo.jp)
一応こっそり公開します。
使い方、インスコ方法はウィキに乗せていくのでそれの完成を待ってください。
とりあえず公開するだけです。

449:nobodyさん
09/12/07 06:37:19
GAEにデプロイしてcronで定期実行、結果もon time Successなんだけどツイッターには投稿されない
ローカルで開くと404エラー:The requested URL /自分のサイトアドレス/post_random.php was not found on this server.
って出るんだけどphpは他のサーバーにアップしてるんだからthis serverでnot foundなのは当たり前じゃないの?
http://から指定してるのになんでフォルダから開こうとしてるんだろう
ソースは>>440さんと一緒で>>440さんが動いたということはつまりどういうことなのかわからなくなって…きた…
自分でphpのページ開くとちゃんと投稿されるので悪いのはソースなんだと思うけどいくらいじってもさっぱり投稿されず
eclipseで実行すると
com.google.appengine.tools.development.LocalResourceFileServlet doGet
WARNING: No file found for: /favicon.ico
何が悪いのかわかるひと教えてください…ファビコンてURLの横に出るアイコンじゃん…関係あるの…


450:nobodyさん
09/12/07 09:57:08
形態素解析ってみんな何使ってる?
Mecab使ってみてるけど他のがよさげならそっちも試してみたいんだけど。

451:nobodyさん
09/12/07 11:05:01
>>448
うぽつ

>>449
よくわからんが、GAEでのcronは某サイト見ながらJAVAでやってるの?
それとも自前?

452:nobodyさん
09/12/07 15:47:55
>>449
GAEでの”/自分のアドレス”ってappengine.google.comで見たときのTitle=eclipseのpackageの名前じゃないか?
eclipseでも同じ名前にしてる?
あとローカルで開くってのがブラウザで開いてるということならブラウザがfaviconを探しにいく
当然favicon見つからず404になる

>>450
Yahoo APIの使ってる。

453:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/07 19:31:13 MdLiWJgY
開発が一段落したので公開中のwikiを載せます。
URLリンク(knowledge.ddo.jp)
発展途上なので機能は貧弱ですがプラグインファイルの開発を手伝っていただければ良いソフトになると思います。
次スレがあればテンプレに組み込んでいただけると嬉しいです。

454:nobodyさん
09/12/07 20:18:17
>>453
ごめん全然関係ないけど…土壇場って独壇場じゃね?

455:nobodyさん
09/12/07 20:54:23
phaさんとこちょっと見てて前から不思議だったんだけど
あのスクリプトってそんなに環境によって動かないものなのか?
自分もプログラミングなんて全くの素人だがphaさんの使って
無料のサーバーでCron-jobから某サイトを参考にGAEで動かして
エラーになったりしても調べてなんとか解決できたし自分で変更もした
自分がたまたま運がよかったのか?

456:nobodyさん
09/12/07 21:27:13
運の問題にしないで原因調べたら?

457:nobodyさん
09/12/07 21:31:58
>>455
>エラーになったりしても調べて
が出来ないんだろう。
環境はIE6です!みたいなこと言ってた人も居たし…。
エラー文読む気ないから丸投げ。

あと本家の鯖の不調と設置の問題の切り分けが難しいのかも。
本体不安定で動かないのかスクリプトかcronか
どれが問題かわからないから丸投げ。

しかし今朝から本家不安定でうちのも不調だわ。

458:DAWNTO_Windy-melt ◆Windy/f9HNwg
09/12/07 21:35:20
>>454
あれ?変換間違えました?

459:nobodyさん
09/12/08 01:05:41
好きに書きゃいんじゃね。
相手が求めてるような楽屋裏話なんてないんだからそういうのがわかりゃ勝手に離れてくさ。

460:nobodyさん
09/12/08 01:06:21
間違えたごめん。

461:nobodyさん
09/12/08 05:26:14
某サイト参考にGAEで動かそうと作っていたんですがtestcronの中にTestcronServlet.javaが何回プロジェクト作り直しても出てこないんですがどうすればいいですか?
ファイル作成しようにも調べ方が悪いのか参考になりそうなページ出てこなくて息詰まってますorz

462:nobodyさん
09/12/08 06:35:04
>>461
自分もそれなったけど、
プロジェクト作成時に「Google Web ツールキットを使用」の
チェックを外さなかった、に30ペソで。

463:461
09/12/08 06:41:40
>>462
ありがとうございます!!!
チェック外して作り直したらちゃんと出てきてくれました!!!


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch