【Twitter】 BOT製作支援スレ

このエントリーをはてなブックマークに追加
1nobodyさん
見当たらなかったので立ててみた

[公式] http://twitter.com/
[Twitter 開発ブログ 日本語版] http://twitterjp.blogspot.com/

*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
2nobodyさん:2009/09/27(日) 14:40:47 ID:???
カレーに2
3nobodyさん:2009/09/27(日) 21:25:25 ID:???
PHPで、TL上の特定の単語に反応して相手にリプライを送る方法を教えてください。
たとえば通常postで「おはよう」「おやすみ」(@付のpostは反応しない)とあった場合に、
こちらからリプライをするものです。

特定の単語をリプライされた場合にその単語用の文章を返せるリプライなら
知っているので、もし必要でしたら貼ります。
4nobodyさん:2009/09/27(日) 22:14:34 ID:???
前半と後半で同じこと言ってるような気がするのは俺だけ・・・?
5nobodyさん:2009/09/27(日) 23:12:14 ID:???
>>4
ややこしくてすみません
後半は、相手から@でリプライされた場合に返すものです。

前半の自分の求めているソースは、
自分にリプライが来ない場合(例えば普通に「おきた、おはよう」という独り言)でも
BOTがTLに勝手に反応して、独り言を言った相手にリプライするものです。

参考までに…(pass:php)
http://uproda.2ch-library.com/lib173763.txt.shtml
6nobodyさん:2009/09/27(日) 23:16:09 ID:???
修正ごめんなさい
>>5のアドレス、これで(pass:php)
http://uproda.2ch-library.com/lib173765.txt.shtml
7nobodyさん:2009/09/27(日) 23:39:27 ID:???
それって自分宛ての返信ページを取得してるんでしょ?
普通に対象ユーザのTLを取得して同様の処理すればいいんでない?
8nobodyさん:2009/09/28(月) 00:50:25 ID:???
>>7
その記述方法が分からなかったので質問したのですが、解決しました
すみませんでした
9nobodyさん:2009/09/28(月) 00:54:52 ID:???
どうやって解決したの?
10nobodyさん:2009/09/28(月) 01:40:24 ID:???
>>9
個人のブログなのでアドレスは書けないんですが、
すごく詳しく解説しているサイトを発見したもので
11nobodyさん:2009/09/28(月) 01:43:03 ID:???
公開してるなら教えてよ。このスレのためにも。
12nobodyさん:2009/09/28(月) 01:49:08 ID:???
>>11
アドレスは書けない
『プログラミングを始める』でぐぐって上から2番目に出てきたところ
13nobodyさん:2009/09/28(月) 03:40:31 ID:???
なんで書けないんだ?
キーワードは言っておいてURLは書けないとか
意味が分からない。
14nobodyさん:2009/09/29(火) 22:27:04 ID:???
>>12
ブログの主に迷惑がかかるからだろうが
お前は自分がよければそれでいいのか?
15nobodyさん:2009/09/29(火) 22:30:50 ID:???
ヒントだけ出せば検索もできない馬鹿なやつを弾けるしな
16nobodyさん:2009/09/30(水) 16:17:35 ID:???
プログラミングができなくても作れるTwitter botの作り方
というサイト様でbot設置は簡単にできたのですが
ランダムに呟き・返事をするのではなく、
・時間帯に合わせて発言する
・特定の語句に対して返事をする(会話が成り立つ)
ようにするにはどうしたらいいでしょうか?
17nobodyさん:2009/09/30(水) 19:04:52 ID:???
> ブログの主に迷惑がかかるからだろうが
> お前は自分がよければそれでいいのか?

どんな迷惑がかかるの?
2ch って何か問題なの?
18nobodyさん:2009/09/30(水) 20:16:47 ID:???
>>14
意味が分からん。
このスレって迷惑なことしてるスレなのか?
19nobodyさん:2009/10/01(木) 13:02:39 ID:???
>>17 >>18
こういうことだ→ >>15
20nobodyさん:2009/10/01(木) 14:00:17 ID:???
製作支援スレと銘打っているので、教える気のない人は来ないでください。

それと2chにURLを貼られるのが嫌な人はたくさんいるので、
なるべくURLは出さずにヒント通り検索してみてください。
『Twitter BOT 作り方』とかで結構出ます。

>>16
サイト名を書かかれるのもいやがる人もいるんでアレなんですが
「銀さんのbot 〜不完全〜」で検索してください
21nobodyさん:2009/10/01(木) 14:25:41 ID:???
>>20
>>16と同じところで躓いてそこも見たんだけど
そのサイトで公開してるやり方を選択するってことは
>>16のサイトで配布してるphpは使わないってこと?
22nobodyさん:2009/10/01(木) 20:49:56 ID:???
>>19
じゃ「ブログの主に迷惑がかかる」というのは嘘ということね
23nobodyさん:2009/10/01(木) 21:40:05 ID:???
>>22
バカ?それとも釣りか?
ちょっと前のレスも見れないんだな。
自分が管理人になって2chの知らないスレにアドレス貼られて影でアレコレ言われてみれば、いい気分しないの自覚するんじゃないの?w
24nobodyさん:2009/10/02(金) 16:27:48 ID:???
質問失礼します
cronを使用できないサーバーを使ってるんですが
ttp://www.webcron.org/index.php
ここって期間過ぎたら有料になりますよね?
あと、ここも試してみたんですがなんか実行されない(twitterに発言が行かない)んですよね・・・
ttp://www.cron-job.org/
やはりcronを使用できるサーバに乗り換えるべきでしょうか、
他に良い方法があったらご教授お願いします
25nobodyさん:2009/10/02(金) 18:45:13 ID:???
>>23
影でアレコレ言うのが嫌ならこのスレの存在を教えれば?
26nobodyさん:2009/10/02(金) 23:10:06 ID:???
全然役立たないスレだな
27nobodyさん:2009/10/08(木) 03:05:53 ID:???
簡単な改造とかはどっちかっつーとPHP初心者スレとかで聞いたほうがいいスだろうな。
リンク禁止とか書かれてるならともかく、プログラム関連の情報ブログなんかはむしろ公開ありありだと思うんだけど

まあそれは置いといて、喧嘩腰暴言吐く人はどのスレでもいらんよね。
28nobodyさん:2009/10/09(金) 14:18:08 ID:???
url貼らないことに粘着する奴がいるようだな、くだらない。
直リンでなくともurl貼らないで検索ヒントのワンクッション置くのは善意だろ。
その善意が誰に向けられてるのかもわからずしつこく粘着とは悪意そのもの。無益だから自重してね
29nobodyさん:2009/10/09(金) 14:20:44 ID:???
そんなのどうでもいいから台詞書き換えるだけで設置できるプログラム配布とかしてくれよ
30nobodyさん:2009/10/09(金) 18:41:44 ID:???
それこそ検索すれば出てくると思うんだが…
それかbotmaker使えばいいんじゃないの?
プログラム面自分で触る気ないならそっちのが簡単じゃない?
31nobodyさん:2009/10/09(金) 19:21:36 ID:???
@で反応するbotが作りたいです
BASARAのbotが理想です
銀さんのbot見たけどよくわかりません
32nobodyさん:2009/10/09(金) 19:48:46 ID:???
>>31
あれでわからないならもう諦めたほうがいい
33nobodyさん:2009/10/09(金) 22:55:15 ID:???
>>28
誰から誰へのどういう善意?
34nobodyさん:2009/10/09(金) 22:56:09 ID:???
>>32
そんなこと言わずに教えてください
35nobodyさん:2009/10/09(金) 23:00:49 ID:???
>>34
そんなこと言わずに諦めてください
36nobodyさん:2009/10/09(金) 23:27:43 ID:???
>>35
そんなこと言わずにお願いします
37nobodyさん:2009/10/10(土) 03:13:49 ID:???
てんどんかよ
38nobodyさん:2009/10/10(土) 03:43:47 ID:???
こんなかんじで応答ができるbotが作りたいです
39nobodyさん:2009/10/10(土) 05:52:06 ID:WvW2Ckcc
http://www.cron-job.org/
は結構頻繁に動かなくなってる?
40nobodyさん:2009/10/10(土) 19:53:02 ID:???
>>39
そこつかってるけど、ときどき定期発言抜けるねー
ときどきジョブが自動でneinになってるときがあってびっくりするよ
41nobodyさん:2009/10/10(土) 20:00:16 ID:???
cron の読み方がわかりません><;
42nobodyさん:2009/10/10(土) 21:08:21 ID:???
>クロンタブ、あるいはクーロンタブ、クローンタブとも
43nobodyさん:2009/10/10(土) 22:07:01 ID:???
botを作ること自体は全く難しくないが、
フォローし続けても飽きがこないbotを作るのは難しい
44nobodyさん:2009/10/12(月) 10:58:32 ID:???
作者が意欲的にワード追加するとか、形態素解析でうまいこと使いまわせるようにしてないとすぐ発言が単調になるしな。
単にしゃべらせたいってだけなら上のほうの検索ワードのやつでいいはずだけどしゃべったらすぐ飽きるよな。
45nobodyさん:2009/10/14(水) 02:56:05 ID:???
phpでフォローしているひとたちの発言をマルコフ連鎖にしてつぶやくbotをつくりたいんだけれど
解説しているサイトとかありませんかね
46nobodyさん:2009/10/14(水) 03:07:56 ID:???
何を?
47nobodyさん:2009/10/14(水) 09:42:46 ID:???
botについて?
マルコフ連鎖について?
48nobodyさん:2009/10/14(水) 11:35:09 ID:???
マルコフ連鎖ならこのへん見ればいいんじゃね
http://d.hatena.ne.jp/pha/20071124/1195904502
http://shohoji.net/blog/archives/001723.html
49nobodyさん:2009/10/14(水) 20:25:17 ID:???
PEARモジュールのServices_Twitterは発言させるだけなら容易にできるけど
フォロワーの名前ひろったり過去発言参照したり色々いじろうとすると物足りないな。
50nobodyさん:2009/10/15(木) 11:45:54 ID:???
「プログラミングを始める」でググって上から二番目ってここ?
http://d.hatena.ne.jp/amachang/20080715/1216114132
id:amachangが2chからのリンクを気にするようなタマとも思えんが。
つーか出てくるページ遠回り過ぎるだろ。キーワードを流すならもっとダイレクトに引っ掛けろ。

「銀さんのbot 〜不完全〜」はここか?
http://d.hatena.ne.jp/silverbot/
銀さんも気にするような人では無いと思うが。
ってこっちは誰だか知らねーけど(藁
51nobodyさん:2009/10/15(木) 16:29:21 ID:???
過剰反応だとは思うし悪意で張るわけでもないから気にしなくていいと思う。
技術系のブログは資料として色々比較したほうがそっちへのフィードバックもできるし。
52nobodyさん:2009/10/15(木) 19:41:26 ID:???
返信するタイプのbotには返信先のpostが出るようにしてほしい。
updateのAPIに投げるデータにin_reply_to_status_id付けて。
53nobodyさん:2009/10/16(金) 10:14:42 ID:???
直リンしちゃだめとか同人系のローカルルールだろwww
プログラミング系の板に変な空気を持ち込まないで欲しいwww
54nobodyさん:2009/10/16(金) 13:15:38 ID:???
cron使える安い鯖無いの?
55nobodyさん:2009/10/16(金) 18:51:32 ID:???
>>54
「レンタルサーバー」でぐぐって出てくる鯖の仕様ページで片っ端から調べて行くとか。
56nobodyさん:2009/10/16(金) 21:10:04 ID:???
>>54
corn-job.comじゃ駄目なのか?
レンタル鯖は大抵1時間に1アクセスくらしかできんぞ

あと誰かMステ出演者botつくってくれ
57nobodyさん:2009/10/17(土) 16:31:35 ID:???
ttp://8bitnote.sblo.jp/article/32678890.html
ここのスクリプトでリプライ作ったんだけど@を拾ってくれない
コメントで同じこと言ってる人いるけどidも間違ってないしTLの発言は拾ってくるのに

ttp://pha22.net/text/twitterbot.html
こっちのランダムリプライスクリプトは問題なく拾ってくれるんだが
58nobodyさん:2009/10/17(土) 16:36:16 ID:???
じゃあ両方のいいとこ取りすればいい・・!
59nobodyさん:2009/10/17(土) 16:52:44 ID:???
ttp://pha22.net/text/twitterbot.html
こっちのスクリプトで特定のワードに反応できるようにカスタマイズできれば一番いいんだけど
素人判断で弄ってエラーで動かなくなった
いい方法ないかね
60nobodyさん:2009/10/17(土) 16:59:12 ID:???
ヲチスレとかで、@pha さん呼んだら解決するじゃん・・・・
61nobodyさん:2009/10/17(土) 17:08:52 ID:???
>>1-
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
62nobodyさん:2009/10/17(土) 19:19:37 ID:???
>>48
Twitter botに実装する方法が分からない…
63nobodyさん:2009/10/17(土) 19:23:27 ID:???
マルコフ連鎖って、chasenやmecabなんかが使えるサーバーじゃないと
形態素解析が使えないから、単語単位での分け方け方じゃなくて、
スペース、句読点くぎりしかできなかったはずだけど、違うのかな。
yahoo apiを使えばできるの?
64nobodyさん:2009/10/17(土) 20:51:02 ID:???
>>1-1000
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
65nobodyさん:2009/10/17(土) 21:18:42 ID:???
>>62
botに実装しない形では完成してるの?
66nobodyさん:2009/10/17(土) 22:05:52 ID:???
今、銀さんのbotを見て作ってたんだけど、
定期つぶやきについては最初はうまくできたのに、
リプライ機能もつけようとしてtxtファイルを作ったら、
リプライはおろか定期つぶやきもしてくれなくなった…
手動でphp実行で投稿しようとしてもだめ
txtファイルを消してもだめ
どなたか知恵下さい...
67nobodyさん:2009/10/18(日) 00:36:54 ID:???
前のつぶやき(20件)と全く同じ発言しようとしてるからじゃね?
それでもダメなら作り直した方が楽な気がする。
68nobodyさん:2009/10/18(日) 00:44:50 ID:???
今、24時間以内に同じ内容のpostをしたらブロックされる規制が導入されてる
らしいね。

Twitter、重複つぶやきをブロック開始
http://jp.techcrunch.com/archives/20091014cleaning-up-the-stream-twitter-kills-duplicate-tweets/

あと直近の10postと同じ内容でなければ、24時間以内でなくとも投稿できるらしい。

http://koty.sakura.ne.jp/lab/twittpedia/index.php?duplicate%20text
6966:2009/10/18(日) 00:50:08 ID:???
>>67 >>68
うわぁありがとう だからか!すごい納得いった。
テストのつもりだったから
発言4種類くらいで6分間隔くらいで喋らせようとしてたわ。
ほんとサンクスです!! もうちょっと頑張ってみる
70nobodyさん:2009/10/18(日) 00:58:06 ID:???
ああ、10件だったっけ…
71nobodyさん:2009/10/18(日) 00:59:39 ID:???
> 24時間以内
というのは間違いみたい。数日経っても動かないボットもいる。
テスト用に作った発言の種類が3つのボットだけど。
72nobodyさん:2009/10/18(日) 01:18:12 ID:???
そうなると直近の10post分だけどっか別のファイルに記録しておいて、投稿前に
その中に同じ内容が含まれていたら違う発言をpostするようにしたら何とか回避
できるかな。
発言を11個以上用意しておく必要があるけれど。
7366:2009/10/18(日) 01:28:40 ID:???
今セリフを増やして言葉も変えたら、とりあえず手動での投稿は受け付けたから
やっぱりセリフの重複が問題だったみたい。
ここのスレなかったら多分諦めてたわ、ありがとう助かった!^▽^
74nobodyさん:2009/10/18(日) 10:07:36 ID:???
>>65
うん
75nobodyさん:2009/10/18(日) 15:22:23 ID:???
>>57
この8bitnoteの方にあるPOST内容から発言を引用するスクリプトを丸コピーしてみたら
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /usr/local/www/
ってエラー出るんだけど質問受付てないし何がいけないんだかさっぱりわかんね
76nobodyさん:2009/10/18(日) 15:24:59 ID:???
パースエラーだろが
77nobodyさん:2009/10/18(日) 18:42:16 ID:???
bot同士で会話させるた時にある程度会話するとリプライしないようにできる方法ない?
78nobodyさん:2009/10/18(日) 19:07:59 ID:???
79nobodyさん:2009/10/18(日) 19:22:35 ID:???
corn-job.orgって使えるcronの数決まってる?
80nobodyさん:2009/10/19(月) 00:15:54 ID:slCeJxW2
なんかおもろいbot教えて
81nobodyさん:2009/10/19(月) 00:38:11 ID:???
リプライに関して。
プログラムは基本的に動くんだけど、
たまに「@ID」のみの空白リプライ返してるときがある。
単に負荷がかかりすぎ、ってことなのかな?
同じ症状出た人いたら教えて欲しい……。
82nobodyさん:2009/10/19(月) 02:47:24 ID:???
POSTするステータス自体が、何らかの要因でそうなってるんじゃないの?
あとは、\0 が入ってるとか。
どっかにログとして保存しとくと確認しやすいかも
83nobodyさん:2009/10/19(月) 03:19:16 ID:???
空リプライはこれが原因とかじゃないかな?
http://d.hatena.ne.jp/bardothodol/20090912
84nobodyさん:2009/10/19(月) 12:45:05 ID:???
作ってみたしリプライの出来るんだがシカトが多いなと思ったら
リプライを読み込むまでにもらった最新の一件にしかリプライしないようだ
原因は何が考えられるでしょうか?
85nobodyさん:2009/10/19(月) 13:10:49 ID:???
作ってみた内容がわからんから何とも言えない
86nobodyさん:2009/10/19(月) 16:55:12 ID:???
最新の一件にしか反応しないようなソースだからじゃないのとしか
87nobodyさん:2009/10/19(月) 19:17:47 ID:???
corn-job.orgが使ってるけど1/3くらいの割合で作動しない気がする
どっか2分間隔でcron使える鯖ないかな
88nobodyさん:2009/10/19(月) 20:17:59 ID:???
elseif( preg_match("/(.+)(なのか|だったのか)/",$text)){ {//「なのか」または「だったのか」の前に何かしら文字があった場合にマッチ
$nanoka = $1;  //「なのか」または「だったのか」の前の文字を$nanokaに代入  ←この行でパースエラーになるんだけど何がおかしいの?
$mes = array("$nanokaなのかー"); //$nanokaを台詞に組み込んで引用!
$mes_n = count($mes) - 1;
$mesrand = mt_rand (0,$mes_n);
89nobodyさん:2009/10/19(月) 20:19:37 ID:???
全角スペースが入ってるから
90nobodyさん:2009/10/19(月) 20:27:16 ID:???
>>88
elseif( preg_match("/(.+)(なのか|だったのか)/",$text,$match)){ {
$nanoka = $match[1];  
91nobodyさん:2009/10/19(月) 20:29:06 ID:???
>>88
あと
>$mes = array("$nanokaなのかー"); //$nanokaを台詞に組み込んで引用!
>$mes_n = count($mes) - 1;
>$mesrand = mt_rand (0,$mes_n);
は何をやりたいのかよくわからないのだけど
これだと count($mes) は必ず1になると思う
92nobodyさん:2009/10/19(月) 20:39:42 ID:???
>>1-1000
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
93nobodyさん:2009/10/19(月) 20:40:27 ID:???
ああ$1とか書いてるからか・・・
94nobodyさん:2009/10/19(月) 20:41:58 ID:???
>>90
迅速な回答ありがとう
おかげでとりあえずエラーは消えたが何故かリプライに反応はしなかった
95nobodyさん:2009/10/19(月) 21:40:31 ID:???
corn-job.org2分間隔と30分間隔で使ってるけど2分の方ほとんど機能しねえ
間隔長い方がいいのか?関係あんのかな
9681:2009/10/19(月) 22:14:13 ID:???
>>82 >>83
ありがd ちょっと試してみる。
空リプライをポストしないようにすればいいんだな、とりあえず。
97nobodyさん:2009/10/19(月) 22:56:38 ID:???
bot動かすのに一番向いてる鯖ってどこ
cron使えるとこで
98nobodyさん:2009/10/19(月) 23:11:03 ID:???
俺の鯖
99nobodyさん:2009/10/19(月) 23:22:10 ID:???
さくらサーバーってcron最短で何分間隔で使えるんだろ
100nobodyさん:2009/10/19(月) 23:26:10 ID:???
twitterにアクセスできて、任意のプログラムを動かせるのであれば
鯖である必要すらない。
101nobodyさん:2009/10/19(月) 23:48:38 ID:???
>>93
Perlやってると陥るミスだな。
構文微妙に似てるせいで同じとこと違うとこを混同しやすい。
102nobodyさん:2009/10/20(火) 00:42:14 ID:???
手動だとちゃんとポストされるのにcronがポストしてくれない
ドイツのサイト使ってるけどここだめなのか
103nobodyさん:2009/10/20(火) 01:12:52 ID:???
普通にcron使えよw
104nobodyさん:2009/10/20(火) 02:01:10 ID:???
ちょっと前に名前を呼ばれてたので名前を出すけど@phaです。
特定の単語に特定の単語を返す機能は次のバージョンアップで付ける予定です。
もうちょっと待ってくださいー。
105nobodyさん:2009/10/20(火) 02:45:47 ID:???
>>102
例のドイツのサイト、多分今すごく負荷かかってるんじゃないか?
良くも悪くも、かなり認知度高まってきた感じだし。
106nobodyさん:2009/10/20(火) 05:16:21 ID:???
>>104
すっごい頼りにしてる。
107nobodyさん:2009/10/20(火) 17:59:03 ID:???
@phaさんが配布してるのと、
時間になったら寝たり、時間帯のつぶやきを組み合わせようとして
途中までうまくいってたんだけど
文字化けしちゃってうまく出来なかった・・・。
誰かやってうまく行った人居ませんか?
108nobodyさん:2009/10/20(火) 18:25:20 ID:???
>>104
@phaさんキタ━━━━(゚∀゚)━━━━!!
待ってます!!!!!!!
109nobodyさん:2009/10/20(火) 18:42:07 ID:???
>>104
お世話になってます
110nobodyさん:2009/10/20(火) 18:50:55 ID:???
>>107
文字コードの設定を見直してみ
UTF-8になってないと化ける
111nobodyさん:2009/10/20(火) 19:50:08 ID:???
cron-job.orgが使い物にならないからxreaでcron動かそうと思ったが設定とか全くわかんね
正直ナメてたわ誰か助けて
112nobodyさん:2009/10/20(火) 20:38:42 ID:???
xreaのcronだったら下のほうに解説ないかな。
もしくはcronでぐぐって設定とかをちょっと勉強するのがよいかも。
113nobodyさん:2009/10/20(火) 20:45:56 ID:???
とりあえず、シェルっていうのが必要ということはわかった
このシェルスクリプトをサーバーにうpして、それにアクセスするとnotfoundになるんだけど間違ってるから?

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

見よう見まねでこんな感じでやってみたんだけど
114nobodyさん:2009/10/20(火) 20:56:17 ID:???
>>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とか
やれば一時間に複数回動かすことが出来るっぽい
で「保存」して反映されれば動くっと。
説明ヘタクソでごめん・・・これで解るといいんだけど・・・

長々と失礼しました。
115nobodyさん:2009/10/20(火) 21:02:14 ID:???
>>114
詳しい説明ありがとう
この改行コードってのがググった時にも出てきたんだがこれはどこで設定できるんだ?
116nobodyさん:2009/10/20(火) 21:14:40 ID:???
>>115
×COREジョブ ○CRONジョブ
ごめん。

自分はテキストエディタTeraPadで「ファイル」→「文字/改行コード指定保存」で指定出来たよ
何のテキストエディタでcron1.shを作るかによって変わると思うから
使ってるテキストエディタで改行コードについてググればいいんじゃないかな?
117nobodyさん:2009/10/20(火) 21:41:44 ID:???
>>116
dクス
とりあえず言われた通りに設置してみた
相変わらずcron.shはNot Foundになるが…大丈夫なのか
118nobodyさん:2009/10/20(火) 21:58:03 ID:???
Not Found?
ファイルが無いって意味じゃないっけ?
ファイルのURL間違えてない?
119nobodyさん:2009/10/20(火) 22:21:59 ID:???
cronがちゃんと実行されてるとメールが来るはずだよな
来ないということは実行されてないってことなのか
120nobodyさん:2009/10/20(火) 22:23:37 ID:???
xreaってメール来るんだっけ。
僕は使ってるけど来てないな。設定によるのかもしれないが
121nobodyさん:2009/10/20(火) 22:40:53 ID:???
なにがおかしいのか動作しないっぽい
こんだけ丁寧に教えてもらったのに申し訳ない…
手動ではちゃんと動くからcronの設定が間違ってるんだろうけど
122nobodyさん:2009/10/20(火) 23:49:43 ID:???
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
123nobodyさん:2009/10/21(水) 08:47:10 ID:???
あー、やっぱりcron-job調子悪いのか…

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


いや、でも負けないけどさ。
124nobodyさん:2009/10/21(水) 08:57:38 ID:???
8bitさんのコメにあるのと同じ質問で申し訳ないのですが
リプライに対する反応語句を増やすにはどこを増やしていじればよいのですか?
if構文から見て自分なりに増やしても、反応すらしてくれません。
125nobodyさん:2009/10/21(水) 09:25:24 ID:???
>>123
自鯖?
cronでこけるときって文字エンコードがらみが経験上多い。
普通にコマンドラインで動かすと動くんだけど、cronで動かないとか。
print文とかあったらコメントアウトしてみるとか

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

>レンタル鯖でcronはあきらめたほうがいい
あー…もう素直にBOT手放すしかないのかなあ…PHP楽しいのに。
127nobodyさん:2009/10/21(水) 10:36:05 ID:???
cron-job.org安定しないよなー…
他にcron使える手段が自分にはないから仕方ないけど
ときどき実行に失敗するのは我慢できるが
勝手にアクティブ設定が無効になるのは勘弁してほしい
128nobodyさん:2009/10/21(水) 11:34:03 ID:???
有料だけどすごく安いのでwebcron.orgはどうかしら
129nobodyさん:2009/10/21(水) 11:38:32 ID:???
webcron.org使ってるけど動作は安定してると思う。
webcron.orgも昔は無料だったんだけど、無料である程度人が集まった時点で有料化された。
なのでそのうちcron-job.orgもそのうち有料化されて、そしたら動作も安定するんじゃないかと思ってる
130nobodyさん:2009/10/21(水) 11:58:44 ID:???
いろいろと本格的にやりたいんならsheevaplug買えばいいよ
玄人から出るみたいだし
131nobodyさん:2009/10/21(水) 19:56:40 ID:???
シェルスクリプトって文字コードUTF-8でいいの?
132nobodyさん:2009/10/21(水) 20:19:29 ID:???
>>79>>87>>95
googleappengine使えば、好きなだけcron設定できるよ
133nobodyさん:2009/10/21(水) 20:43:51 ID:???
>>132
今GAEが対応してる言語ってpythonかjavaだけじゃない?
php対応してたら使いたいけどなー

>>>79>>87>>95
>googleappengine使えば、好きなだけcron設定できるよ
134nobodyさん:2009/10/21(水) 21:23:16 ID:???
pythonでいいじゃん
135nobodyさん:2009/10/21(水) 21:26:06 ID:???
制限あるじゃん
136nobodyさん:2009/10/21(水) 23:03:06 ID:???
自分のPCにapacheとphpインストールしてcron動かせばいいじゃん
立ち上げっぱなしになるのがネックだけど
137nobodyさん:2009/10/22(木) 00:00:16 ID:???
@phaです。
プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/text/twitterbot.html
少しバージョンアップしました。
特定の単語に特定の単語を返す機能と、現在の時間を組み込める機能を付けました。
よかったら試してみてくださいー
138nobodyさん:2009/10/22(木) 00:10:26 ID:???
>>137
お疲れ様です。
139nobodyさん:2009/10/22(木) 05:06:11 ID:???
>>137
本当に有難う。
140nobodyさん:2009/10/22(木) 07:38:40 ID:???
>>137
ありがとうございます!
141nobodyさん:2009/10/22(木) 08:23:56 ID:???
>>137
いけました!
有難う御座います!!
しかし、中身に記載されてるバージョンが1.1のまんまでしたよー
142nobodyさん:2009/10/22(木) 14:33:42 ID:???
リプライをもらうと@だけ発言する、うちのボット…
143nobodyさん:2009/10/22(木) 15:09:08 ID:???
>>142
確実にソースが間違ってる。がんがれ
144nobodyさん:2009/10/22(木) 17:51:54 ID:???
>>141
バージョン直しました
145nobodyさん:2009/10/22(木) 18:32:14 ID:???
おつかれさまです!!!!
146nobodyさん:2009/10/22(木) 19:04:13 ID:???
自分のbotが他のbotにフォローされてるんだけどフォロー返したら会話がループしそうなんだよな
147nobodyさん:2009/10/22(木) 19:14:00 ID:???
この新しいreply_patternってやつをreply_randomに組み込めばいいんだよね?
なんかエラー吐くんだけどどこに置けば?
148nobodyさん:2009/10/22(木) 19:37:46 ID:???
たまにリプライするとき@の前にドットつけてるbotいるけど何の意味があんの?
149nobodyさん:2009/10/22(木) 20:45:08 ID:???
>>147
reply_pattern.php のファイルの場所を移動させなくてもそのまま置いておけばできたよ
150nobodyさん:2009/10/22(木) 21:26:28 ID:???
>>143
だよねぇ。。
がんばるわ。
151nobodyさん:2009/10/22(木) 23:02:20 ID:???
>>137
ありがとうございましたー!!
でも動かないー!
152nobodyさん:2009/10/23(金) 00:01:49 ID:???
>>151
どんな状態で動かない?
153nobodyさん:2009/10/23(金) 00:20:42 ID:???
>152
反応が全くない。TL上のワードを拾うわけじゃないんですよね?
普通に@無視される…
まぁ、@つけても無視されるんですが。おやすみ入れてもスルー。
154nobodyさん:2009/10/23(金) 01:31:51 ID:???
>>137
本当にありがとうございますー!
今まで特定の語句への返信は、
phaさんのを参考にして作ったという某ブログのスクリプトを使っていたんですが
こちらの方がすっきりしていてサイズが小さく済む+追加しやすいのでこちらに変えました
定期ランダムポスト+特定の語句へのリプライはphaさんのスクリプト
TLから特定の語句を拾ってのリプライは某ブログのスクリプトという
合わせ技でもなんとか動いてます
こんなに使いやすいスクリプトを作って下さり、本当にありがとうございました
155nobodyさん:2009/10/23(金) 07:18:12 ID:???
>>137
構文を追加したらRT対策が解除される、ということは不可能でしょうか?
.@での挨拶が多いので対応出来なくて…
156nobodyさん:2009/10/23(金) 12:22:52 ID:???
リプライの応用で、特定のワードには反応しないってことはできるのかな?
157nobodyさん:2009/10/23(金) 12:44:10 ID:???
phaさんのリプライ返すのを改変してTL中にキーワードがあったら返すのつくってるんだが
自分の発言にキーワードがあった場合やリプライ時でも返してしまう
if( $screen_name != $username){ //自分の発言時は反応しない
if(strpos($re["text"],"@".$username) === False){ //発言の中に@があった場合は反応しない
if(preg_match("/キーワード/",$re["text"])){ //特定のキーワードがあった場合反応する
$replies[] = $re;
}
}
}
こう改変してるんだけどどこがへんなのかな?
条件分岐がうまく動いてないみたいなんだけど
158nobodyさん:2009/10/23(金) 13:59:49 ID:???
スクリプト自体は一切手を加えてないのに実際に投稿されるときとされないときがある。
txtファイルに登録してる発言内容が少ないので同じ発言がたまたま選択されて連投規制に引っかかったのか、
一度に投稿スクリプトを動かし過ぎてAPI規制に引っかかったのか…

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

cron-job.orgも登録してみたけどうまくいかないのでcygwin入れてみたけどさっぱりわかんないやorz
159nobodyさん:2009/10/23(金) 14:12:26 ID:???
>>157
datファイルをつくってそこに最新のTLを蓄積
$host = "http://twitter.com/statuses/friends_timeline.xml";

ってやったほうがいいかも
160nobodyさん:2009/10/23(金) 14:26:03 ID:???
>>158
全然投稿で着てないわけじゃないんでしょ?
だったらやっぱり重複制限に引っ掛かってるのかもしれないから
適当にtxtファイルの中身増やしてテストしてみたら?
161nobodyさん:2009/10/23(金) 16:46:40 ID:???
cron-job.org落ちた?
162nobodyさん:2009/10/23(金) 16:49:29 ID:???
落ちてるね
163nobodyさん:2009/10/23(金) 17:44:36 ID:???
そういえば、rubyの本で人工無脳をつくる本があったけなぁー
アレどっかにつんであるはずだからさがして
twitterのbotで発言できるようにしてみるか

164nobodyさん:2009/10/23(金) 20:39:31 ID:???
>>137のスクリプトでおはようをPOSTすると「おはよう」の返事+普通の@返しされるんだけど
他にもこういうひといない?
165nobodyさん:2009/10/23(金) 22:33:51 ID:???
bot同士が会話してるせいでTL流れるのがハンパねえ
これって連投すると規制されるのか?
166nobodyさん:2009/10/23(金) 23:13:23 ID:???
・直前の10ポストと同じ内容の投稿は受け付けない。>>68
・2時間で125以上ポスト出来ない(というメッセージが出たことある)

投稿規制はこの二つだったはず。後者はちょっと曖昧かも。
167nobodyさん:2009/10/24(土) 00:40:33 ID:???
後者のpost規制の基準は曖昧だからな…変動してるらしいし
定期postの間隔がよっぽど短いとか
リプライ反応する間隔が2分とかで
毎度数十件のpostでもしなきゃされないんじゃね
168nobodyさん:2009/10/24(土) 00:53:48 ID:???
レンタルサーバーでcronが安定してるのってどこがある?
cron-job安定しないんだよなー
それとも2分じゃなくて4〜6分間隔くらいにしたらまだましかね?
169nobodyさん:2009/10/24(土) 01:14:32 ID:???
>>168
80code.com安定してるよー。現在は新規受付停止中だけど。
さくらのスタンダードとエックスサーバーもcron可だったと思うが、使った事無いので動作については分からん
170nobodyさん:2009/10/24(土) 01:54:14 ID:???
>>169
調べてみるわー、ありがと
リプライ返しやTLから拾ってくるタイプだから分おきに
動かないときついわ
171nobodyさん:2009/10/24(土) 03:16:09 ID:???
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";
}

}
172nobodyさん:2009/10/24(土) 03:24:11 ID:???
cronいつの間にかneinなってた…
上でググるアプ使ってる人はどうやってるの?
173nobodyさん:2009/10/24(土) 03:29:14 ID:???
>>171
$c = "-1";
174nobodyさん:2009/10/24(土) 10:28:47 ID:???
>>173
ありがとう
出来た気がする。もうちょっとテストしてみるわ
175nobodyさん:2009/10/24(土) 10:47:44 ID:???
「いつ・どこで・なにをする」をランダムに組み替えて発言するとか
相手の発言を引用する(○○だよ→○○なんだね)みたいなやり方教えて
176nobodyさん:2009/10/24(土) 11:24:30 ID:???
指定した時間に、指定したアイコンに
自動的に複数回変更できるスクリプトないですか…ね?

ttp://ameblo.jp/liam7/entry-10363726388.html
ここ参考にしようと思ったらcurl使えなくて
177nobodyさん:2009/10/24(土) 11:33:14 ID:???
178nobodyさん:2009/10/24(土) 11:58:22 ID:???
お願いだー!
誰か、TL上のワード拾って反応するBOTのソースくれー!
バカなのは承知してるし勉強もしてるんだー
179nobodyさん:2009/10/24(土) 12:24:52 ID:???
>>137のスクリプトって○分までは吐かないのか…
180nobodyさん:2009/10/24(土) 12:34:34 ID:???
>>178
ググればいくらでもでてくる
181nobodyさん:2009/10/24(土) 14:40:42 ID:???
>>137のスクリプトを置いて、試しに動かしたら運勢の結果がランダムではなくひとつずつ発言として全部出てきたんですが…。
IDとパス以外変更してないのになにこれ?
182nobodyさん:2009/10/24(土) 15:01:23 ID:???
cronあってねーんじゃねーの
183nobodyさん:2009/10/24(土) 15:04:22 ID:???
>>179
時間の奴はちょっと調べれば簡単に改変できるよ
date()あたりググればいいんじゃない
184nobodyさん:2009/10/24(土) 16:31:39 ID:???
replyで何度試しても「〜分以内に受け取った@はないようです」と表示されます。
1〜2回うまく行ったけどあとはさっぱり
何か考えられる原因があったらご教授願います
185184:2009/10/24(土) 16:56:22 ID:???
解決しました。
@ユーザー名の後のスペースが全角になっていました…orz
お恥ずかしい限りですがご報告だけ。
186nobodyさん:2009/10/24(土) 23:17:12 ID:???
>>177
ありがとう!やってみる!
187nobodyさん:2009/10/25(日) 00:51:07 ID:???
昆虫みたいなbotをつくりたい
あれすごい
188nobodyさん:2009/10/25(日) 11:11:20 ID:???
ttp://twitter.com/ooishi_bot
これみたいに一部分だけをランダムに組み替えて発言させるにはどうしたらいいの?
189nobodyさん:2009/10/25(日) 11:22:48 ID:QovXst2Y
ttp://twitter.com/syoutengai
上記のように、特定の言葉(この場合「商店街」)がつぶやかれたものを検索して
自動的にRTするようなBOTの作り方をご存じの方、ご教示願います。
190nobodyさん:2009/10/25(日) 11:53:18 ID:???
>>188
簡単な人工知能プログラムが必要。
bot技術とはちょっとかんけいない。
191nobodyさん:2009/10/25(日) 17:18:48 ID:???
>>190
そんな高度な技術でもないだろ、
とりあえずphaさんのスクリプト例に取るとpost_random.phpのテキストファイルの内容を一行ずつ読み込んでランダムに一つ選択するところと
reply_random.phpのテキストファイル中の{name}を置き換えるところを応用してくっつければ出来る。スクリプト長くなるけど。
192nobodyさん:2009/10/25(日) 17:45:15 ID:???
phaさんのだとPostに対してリプライ送るんじゃなくて「@ユーザーID」を
文頭においてPostしてるだけになるんだけど
ちゃんとしたリプライ送るようにするにはどうすればいい?
193nobodyさん:2009/10/25(日) 18:05:57 ID:???
phaさんのscriptの、特定の単語を返すってやつで
"おはよ"と"オハヨ"のどちらにも対応させる(1セットで)には
どうすればいいのでしょうか?

↓な感じにしたいんですが
"おはよ|オハヨ"=> array(
 "おはよう",
 "おはよ!",
),
194nobodyさん:2009/10/25(日) 19:39:46 ID:???
>>193
今のところそういう機能はないね。バージョンアップでつけるって言ってたけど
195nobodyさん:2009/10/25(日) 20:20:59 ID:???
>>181
FTPでアスキーモードで転送できてなくて改行が変になってるのかも
FTPでアスキーモードを指定、とやってみたらどうかなあ
わかんないけど
196nobodyさん:2009/10/25(日) 21:19:37 ID:???
セーフモードのPHPでcurl_opt設定を出来ないのは回避策はありますか?
DSOで。
197nobodyさん:2009/10/25(日) 21:22:31 ID:???
>>194
ありがとう。バージョンアップ…待ちます。
198nobodyさん:2009/10/26(月) 02:00:49 ID:???
自動フォロー返しやDM返しってどうやる?
199nobodyさん:2009/10/26(月) 03:07:52 ID:???
>>192
@付きステータスのアップデート時に、in_reply_to_status_id を付ける。
詳しくはAPI仕様書を読んでね。

>>198
適当な間隔でフォロワーやDMのリストを取得して処理すればいい。
API制限もあるし、1度処理したらファイルに記録しておく必要があると思う。
メール通知を利用するって手もありそうだけど、
メールが来ないことが結構あるような・・・・。
200nobodyさん:2009/10/26(月) 18:23:57 ID:???
>>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'
));
}
ここにいれればいいの?
201nobodyさん:2009/10/26(月) 18:25:16 ID:???
>>189
特定のつぶやきを検索するのには検索用APIが用意されているし、
RTの仕方についてはPOST時に適当な書式に沿ってRTを付けるだけ。
(retweet関係のAPIって正式に公開された?)
それらを適度に組み合わせれば清むので、
別段特殊な技術が必要な訳ではないから何も難しいことはないかと。


ところで、twitter.com/syoutengai で検索したら
なにやらひどいコメントが。
ttp://www.google.co.jp/search?pws=0&q=twitter.com/syoutengai
202nobodyさん:2009/10/26(月) 18:29:46 ID:???
>>198
自動リムーブだけど1日に1回、friends/idsとfollowers/idsの差分とって処理してる。
フォローも似たような案配でいけるんじゃない?

>199
in_reply_to_status_idって返信先ステータスのIDを指定するでいいんだよね?
送出前のヘッダを出力してみるとin_reply_to_status_idの指定がちゃんとしてあるんだけど、
レスポンスみると無視されてるみたいでハマってるんだ
203200:2009/10/26(月) 18:36:56 ID:???
>>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));
みたいに書いてたよ
204nobodyさん:2009/10/26(月) 18:53:10 ID:???
botに好感度みたいなのを実装するのは無理?
あいさつをちゃんとしている人(Replyでおはようとか)にはやさしくなっていくとか…
205nobodyさん:2009/10/26(月) 19:47:55 ID:???
可能です
206nobodyさん:2009/10/26(月) 20:33:51 ID:???
>>203
おお、助かった!ちょっとやってみ…たらできんかった
エラー起こってないから単にin_reply_to_status_idが取得できてないだけなんかな
207nobodyさん:2009/10/26(月) 20:39:34 ID:???
Basicでぼっとつくりたいんですけど・・・
208nobodyさん:2009/10/26(月) 22:11:17 ID:???
>>204
たまごっちみたいなもんか
209nobodyさん:2009/10/26(月) 22:31:38 ID:???
>>208
うんこながしたりプロテインのませたりするんだな
210nobodyさん:2009/10/27(火) 00:08:03 ID:???
necotterってそんな感じじゃなかったっけ
211nobodyさん:2009/10/27(火) 00:34:10 ID:???
そのうち育てたbot同士で対決させるんだろ
212nobodyさん:2009/10/27(火) 00:36:04 ID:???
>>203
これの場合
$in_reply_to_status_id = $replies2[$i]["in_reply_to_status_id"];
$status = "@".$replies2[$i]["screen_name"]." ".$text;
でいいのか?
213nobodyさん:2009/10/27(火) 02:46:16 ID:???
銀さんとこのソースで、寝る時間が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したら『@**** 『●●』だよ』というやつです。
ご存知の方、教えてください
214nobodyさん:2009/10/27(火) 13:25:06 ID:???
>>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より小さかったら」って書けば?
215nobodyさん:2009/10/27(火) 15:03:13 ID:???
毎月の決まった日時に決まった台詞を吐くbotはつくれないでしょうか
216nobodyさん:2009/10/27(火) 15:13:33 ID:???
phaさんの所でBOT作らせてもらったんだけど、特定の単語にしか反応しないようにって出来ないかな。
通常のリプライなしにしたいんだけどできる?例えば「おはよう」にしか反応しないとか。
217nobodyさん:2009/10/27(火) 15:16:13 ID:???
>>215
毎月の決まった日時にだけ起動させればいいんじゃないの?
218nobodyさん:2009/10/27(火) 17:29:00 ID:???
>>213
214氏が指摘している通り、わざわざpreg_matchを使う必要が元々無いよ。

翻訳機能のソース以前に、自前で自然言語の辞書を持つ事に結構な
リソースが必要なので、大抵は他を呼び出してると思うんだけど。
「翻訳 API」とかで検索すれば結構あるので、それを使うのが手っ取り早い。
特定の単語しか翻訳しない仕様なら、それこそ鸚鵡返しbotで十分だろうし。
219nobodyさん:2009/10/27(火) 18:42:15 ID:???
>>216
できるよ
220nobodyさん:2009/10/27(火) 19:28:32 ID:???
phaさんのを見てbot作って、いままで普通に動いてたんだけど
なぜかいきなりエラーになったみたい。
発言はするんだけどリプライしなくなったっぽい。

reply_random.php にアクセスすると
Parse error: syntax error, unexpected '{', expecting ')' in /home/atumari.net/pp259583/public_html/reply_pattern.php on line 181
というのが出るんだけど、これって一体なに?
どこが原因でエラーになってるのかさっぱりわからない…
221nobodyさん:2009/10/27(火) 19:52:06 ID:???
>>220
行末の;が抜けてるとか
それよりスクリプト置いてるURL晒さないほうがいい、早く変えれ
222nobodyさん:2009/10/27(火) 20:07:10 ID:???
>>221
ありがとう!解決した
URL変えてくる。すみません
223nobodyさん:2009/10/27(火) 22:49:08 ID:???
in_reply_to_status_idの付加方法がわからん
誰か教えてくれ
224nobodyさん:2009/10/27(火) 23:25:26 ID:???
in_reply_to_status_idを付加したバージョン作った
http://pha22.net/text/twitterbot.html
225224=@pha:2009/10/27(火) 23:29:15 ID:???
>>203の方法でいけるはずなのになんでできないんだろう、って思ってソースをよく読んでみたら、
Services/Twitter/Connector.phpの95行目でリクエストを組み立てるときに
$body .= '&';
ってやってるのが原因だった
$body .= '&';
に変えたらできるようになった。
他にも特定の単語に反応するときに正規表現を使えるようにもしました。
226nobodyさん:2009/10/27(火) 23:32:40 ID:???
>>224
生きるのに疲れたのでbotになりたいんですけどどうーすれば良いですか?
227nobodyさん:2009/10/28(水) 00:02:18 ID:???
>>224
おつかれさまです。
1つお伺いしたいのですが、バージョンアップをする場合は
tw.txt以外の全てのファイル(Servicesフォルダも)を
入れ替えればいいのでしょうか?
228nobodyさん:2009/10/28(水) 00:03:51 ID:???
>>224
乙です、やろうとしてたことがかなり出来るようになってて嬉しい!
229nobodyさん:2009/10/28(水) 00:54:09 ID:???
>>227
そうですそうです
230nobodyさん:2009/10/28(水) 13:07:25 ID:???
正規表現面倒くさい…
単純に|で区切るやつにして欲しいです
231nobodyさん:2009/10/28(水) 13:53:35 ID:???
え…?
232nobodyさん:2009/10/28(水) 14:06:33 ID:???
>>230
|が正規表現…だよね?
233nobodyさん:2009/10/28(水) 15:50:24 ID:???
phaさんの新しいやつの事でしょ
234nobodyさん:2009/10/28(水) 17:58:20 ID:???
>>224=225
うへえ、どうりでヘッダ見てても分からないはずだーありがとうございました!
235nobodyさん:2009/10/28(水) 19:41:20 ID:???
>>225
$body .= '&amp;';

$body .= '&';
に変えたということです。
2chって実体参照通るのね。
236nobodyさん:2009/10/28(水) 19:59:24 ID:???
>>224のスクリプトをDLして弄ってます。
正規表現っていうのを初めて使うのですが

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

おー*い、おー+い、おー?い、おー(ー)?い ではスルーされて行き詰まってます…
237nobodyさん:2009/10/28(水) 20:37:29 ID:???
>>236
「おー」でいいんじゃね
238nobodyさん:2009/10/28(水) 20:38:23 ID:???
>>236
お(ー)+い

でどうかな
239236:2009/10/28(水) 20:42:37 ID:???
>>237
すみません、『えーーん』や『うーーん』にも応用したくて…
>>237さんの方法で、『えーーん』→『えー』と指定しまうと
『えーー!』等が引っかかってしまいます。

…ので、>>236の正規表現で煮詰まってます;
240236:2009/10/28(水) 20:47:27 ID:???
>>238
ありがとうございます。
『お(ー)+い』を試してきましたが、スルーされました…。


スクリプト毎に、使える正規表現というのは
限定されているものなのでしょうか?
241nobodyさん:2009/10/28(水) 20:50:14 ID:???
>>240
いま自分でPHPで試してみたけど、
 お(ー)+い
でいけたよ。
242240:2009/10/28(水) 20:53:40 ID:???
>>241
マジですか…余計にわからなくなってきた。
御手数おかけしました。
243nobodyさん:2009/10/29(木) 04:23:33 ID:???
>>230
>>233
対応してるよ
244nobodyさん:2009/10/29(木) 05:48:07 ID:???
正規表現がまったく反応してくれなくて困ってます…
phaさんのサンプルのこん(に)?ち[はわ]すらスルーされる始末

正規表現使わなければ普通に動きます
どこに問題あるんでしょうか…
245nobodyさん:2009/10/29(木) 11:58:27 ID:???
Webcronの「30sec・time-out」ってどういう意味なんだろ
有料だけどここ使ってる人いる?
246nobodyさん:2009/10/29(木) 12:21:28 ID:???
>>245

30秒でタイムアウトするって事だろ。
俺ここ使ってるけどたまにタイムアウトするよ。180秒にした方が無難なんだけど一回に? 0,0004はちょっとイタイ。
247nobodyさん:2009/10/29(木) 16:55:26 ID:???
>>246
なにがタイムアウトしてそれがどう影響するのか
わからない程度の素人だけど180秒にしたほうが
いいとわかっただけでありがたい
一度試用してみるよーありがとう
248nobodyさん:2009/10/29(木) 20:29:41 ID:???
>>244
自己解決しました。普通にver1.2つかってたよ、ごめんなさい。

正規表現難しいね
 聞(こえ|いて)[んる](の)??
に反応してくんないんだけど、どっか間違ってるかな
249nobodyさん:2009/10/30(金) 19:30:09 ID:???
相手の発言の一部だけを引用ってできないの?
「」の中だけとか
250nobodyさん:2009/10/30(金) 19:44:57 ID:???
できるよ
251nobodyさん:2009/10/30(金) 20:46:18 ID:???
konchuuの開発者って誰なの、気になる
252nobodyさん:2009/10/31(土) 02:12:59 ID:???
TLの特定の言葉に反応してリプライをするってやつ難しいな
ソースほぼ丸々コピーでやってるのにエラー出てお手上げ状態だよ…
ソース公開してる記事のコメント見るに同じような状況の人もいるっぽいけど
解決してなくてどうしようもねえ
253nobodyさん:2009/10/31(土) 02:15:45 ID:???
難しいって自分でコード書くのが難しいんじゃなくて
コピーした他人の奴をぐぐって動くように編集するのが難しいのかよ
まぁそれも力になるさ
254nobodyさん:2009/10/31(土) 02:40:01 ID:???
>>253
恥ずかしながらそういうことだ!
でもやってみたいから色々調べて勉強してみるよ
255nobodyさん:2009/11/01(日) 00:14:13 ID:???
twitter検索使ったbot作ってるけど最近検索が止まってるみたい。
公式の検索使った方がいいのかなぁ…。
256nobodyさん:2009/11/01(日) 20:41:15 ID:???
昆虫すげぇ、もうListsを駆使してる
257nobodyさん:2009/11/02(月) 14:39:36 ID:???
phaさん、単純なやつでもいいのでマルコフ連鎖を…
258nobodyさん:2009/11/02(月) 22:50:28 ID:???
最近BOTからBOTへのフォローがくるんだけど
無限ループに陥る可能性ある…よな?これ。
APIの回数制限とかあるけども。
259nobodyさん:2009/11/03(火) 01:01:47 ID:???
>>258
キャラクター系botだとあるある。自分もそれが怖いのでおはようやおやすみのような日常会話系単語にリプライさせられないでいる。
リプライした相手を記録しておいて、投稿前に照合するくらいの対策しか思いつかない。(記録は一日一回クリアするってことで)

botとメッセージをやり取りしないbotなら気にしなくてもいいんだろうけど、自分が作ってるのがキャラ系botなんで、同じキャラbot同士での会話もさせたいんだ。
いろいろやってるうちに好きなだけcron回したくて自分専用のサーバ欲しくなるw 
260nobodyさん:2009/11/03(火) 02:51:05 ID:???
無限ループはよく陥ってるbot見るけど
botからのpostは無視するようにすればいいんじゃないかなぁ
sourceがAPIとかなら無視させるとか botじゃなくてもAPIからの投稿だとスルーしちゃうけど
もしくはbotによくあるスクリーンネーム語尾が〜botなら無視させるとか… これも普通の人が〜botってスクリーンネームだとスルーしちゃうのが難点だな
261nobodyさん:2009/11/03(火) 05:40:38 ID:???
時間別に違う言葉を返すのってできないかな
昼過ぎにおはようって言うと、「寝坊?」って返すみたいなの
262nobodyさん:2009/11/03(火) 08:19:52 ID:???
>>261
PHPだったらdate("H")とかで現在の時間を取ってifとかswitchとかで場合分けだな
263nobodyさん:2009/11/03(火) 14:32:48 ID:???
>sourceがAPIとかなら無視させる
これって可能?
264nobodyさん:2009/11/03(火) 16:11:13 ID:???
>>263
可能
265sage:2009/11/04(水) 00:25:58 ID:oJ2uxGZI
cron-jobでfehlerhaftって出るのは何でだ・・・
URLコピペで貼ってるから間違いないのに不完全なURLって出る。


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

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

調べてみたけど分からなかったので分かる人いたら教えてください
266nobodyさん:2009/11/04(水) 01:01:25 ID:???
>>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);
}
}
267nobodyさん:2009/11/04(水) 01:02:46 ID:???
if($plist = $mes['night']){
なにこれ?
268nobodyさん:2009/11/04(水) 01:08:25 ID:???
>>267
case ($now_g > '16') && ($now_g < '20') :
$plist = $mes['night'];
swichで時間帯設定したんだけど、発言の部分に「その時間だったら」って内容つけるのに四苦八苦した結果がこれです。

もしかして全然違う?
269nobodyさん:2009/11/04(水) 01:09:07 ID:???
ごめんなさい、投稿早まった。
上のはswichで設定した分です。
270nobodyさん:2009/11/04(水) 01:15:13 ID:???
>>209
そういう感じにフォロワーが色々いじってパラメータ変動させられるbotは面白いかもね。
ただしいたずらで無茶苦茶機嫌悪くさせたり病気にもできそうなのと
何よりその手の育成システムはアイデアとプログラムが割りと手間だな。
271nobodyさん:2009/11/04(水) 01:36:06 ID:???
>>268
意味がわかりません
272nobodyさん:2009/11/04(水) 01:44:35 ID:???
>>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
273nobodyさん:2009/11/04(水) 02:58:30 ID:???
やりたいことは
if($plist == $mes['night']){
なんじゃない?
274nobodyさん:2009/11/04(水) 03:59:33 ID:???
>>273
ありがとうございます!正解は==なんですね…
早速=の数を直してみたんですが、やっぱり時間設定に反応してくれません。
if($plist == $mes['night']){はもちろん、if (($now_g == '3') or ($now_g == '4') ){ でも試してみたりしたのですが、完全にスルーです。

$now_g = date('G');も埋め込んであるんですが…なんで反応してくれないのかさっぱりです…
275nobodyさん:2009/11/04(水) 04:55:42 ID:???
とりあえずどの段階で変数が想定外の値になってるか確認してみたら?
276274:2009/11/04(水) 07:17:07 ID:???
>>275
swichはどうやっても反応しないので、諦めていろいろ試行錯誤してたらやっと反応してくれた!!
if($plist == $mes['night']){ の代わりに if(($now_g >= '10') && ($now_g <= '17')){ を個別に指定してみたらできましたー!
結局反応しなかった理由はよくわかんないけど、<= じゃなくて < になってたのも原因のひとつみたたいでした。

アドバイスがなかったら絶対途中でめげてた。聞いてくれた方ありがとうございました!
277nobodyさん:2009/11/04(水) 07:54:05 ID:???
botはシステム自体はそんな難しくはないけど
多様性とか面白さとかのアイデア方面がなかなかいいのが思いつかないな。
278nobodyさん:2009/11/06(金) 18:16:08 ID:???
>>277
そうなんだよなあ。ヘタに@に対して定型文返してくるbotより、
単なるRSS垂れ流しの方がずっと有用だったりする現実。
279nobodyさん:2009/11/06(金) 22:29:14 ID:???
銀さんのところのをコピペしてやってみてるんですが、
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さんのやつでやってたんですが
何をどう頑張っても改行されなくて
銀さんの方で作ることにしたんですがなかなかうまく行かないです
280nobodyさん:2009/11/07(土) 00:47:57 ID:???
コメントアウトのつもりが先頭に/1つしかないとかじゃないの。
正規表現でエラー出るってことはそーゆーことじゃないの。

ていうかああしたとかこうしたとか素人が言うよりは
そのいじった行をそのままコピペしたほうがわかる。
281nobodyさん:2009/11/07(土) 05:04:43 ID:???
>>279
ちゃんとコピペできていないか、実行側にちゃんと送信できていないに1票。

>何がおかしいのかわからないです
まず検索すれば分かると思うけど、Modifierってのは修飾子のこと。
↓マニュアルのURLにも出てくる。
ttp://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
でもって「Unknown modifier '['」ってのは「知らない修飾子'['がある」と、
親切に教えてくれてるわけだ。教えられた側が理解できているかは別として。
つまりこの場合、PHPが「(構文に沿えば)修飾子があるはずの場所に、
修飾子でない文字があるのはおかしい」と指摘しているので、
まず最初にその付近を見直すのが定石。
282nobodyさん:2009/11/07(土) 16:49:41 ID:???
なんも反応ないってことは大体あってたのかな。
283nobodyさん:2009/11/07(土) 16:50:06 ID:???
サーバーがsafe_modeだとなんでダメなの?
284nobodyさん:2009/11/07(土) 18:37:38 ID:???
279です。

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

規制中でケータイからなので読み辛かったら申し訳ないです
285nobodyさん:2009/11/08(日) 19:21:21 ID:???
「○○って言って」ってリプライされた時に○○の部分だけ返すのってどうやるの
phaさんのスクリプト使って出来る?
286nobodyさん:2009/11/08(日) 22:28:42 ID:???
>>285
reply_pattern.phpに

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

でよくね?
287nobodyさん:2009/11/08(日) 23:02:46 ID:???
いや、そういうことではなくて○○の部分は相手が言った言葉によって変えたいんだ
一部分だけ相手の発言を引用するというか
288nobodyさん:2009/11/08(日) 23:07:58 ID:???
できるけど処理がややこしくなるから別物になっちまうな。
289nobodyさん:2009/11/08(日) 23:08:01 ID:???
@aaaの発言:
@bot AAAって言って

@botの発言:
@aaa AAA

ってこと?
290nobodyさん:2009/11/08(日) 23:30:52 ID:???
reply_pattern.phpに

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

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

ややこしいかもしれないけどできなくはないはず
携帯からなんでコレが限界
291nobodyさん:2009/11/08(日) 23:35:44 ID:???
>>290
ごめん忘れてた
「○○」を復唱して ←こんな形式でリプしてもらうとして、ね
鍵括弧でくくってる事と復唱って言葉がポイントってことで
292nobodyさん:2009/11/08(日) 23:42:11 ID:???
>>289
そうそう

>>290
なるほど…なんとなく理屈は分かった
問題は投稿するまでの処理か…
293nobodyさん:2009/11/09(月) 00:52:01 ID:???
ある程度の早さで返事することになるとその頻度でTL取得することになるからAPI制限との勝負になるとこもネック
294nobodyさん:2009/11/09(月) 17:18:21 ID:???
8bitさんの好感度スクリプトを見つけたんだがいまいち分からない。
調べてみても、使い方のヒントになるものは何も…
携帯からなのでURL貼れなくて申し訳ない。
295nobodyさん:2009/11/09(月) 17:25:06 ID:???
何が分からないのか言ってくれないとニントモカントモ
296nobodyさん:2009/11/09(月) 18:29:28 ID:???
>>294
なんでそこの作者さんがサポートをやめたのか書いてあるだろ。もう一回読んで来い。
phaさんとこ見てても思うけどマジで初心者多いな。
ほぼ全レスのphaさんすげえ。
297nobodyさん:2009/11/09(月) 19:43:14 ID:???
>>296
サポやめたくなるのもわかるんだけど
キレてる事をblogに書くのはどうかとも思ったw
298nobodyさん:2009/11/09(月) 19:54:17 ID:???
あそこのリプライから発言を引用するスクリプト、
ユーザIDとパスワード以外弄ってないのに動作しないんだけど
質問受け付けてないからどうにもならんかった
299nobodyさん:2009/11/09(月) 20:41:52 ID:???
はじめて見たけど、中身かなり親切に書いてあるじゃん…

>>298
出たエラーでググったりすればなんとなく見えてくるんじゃないか?
300nobodyさん:2009/11/09(月) 20:48:26 ID:???
>>298
それって
ttp://8bitnote.sblo.jp/article/32680372.html
で配布されてるnanoka.phpのことか?
ざっと読んでみたけどServices_Twitterも入れないと動かないよこれ
301nobodyさん:2009/11/09(月) 21:26:11 ID:???
294ですが好感度スクリプトについては説明がないんですよ。
txtには何を入れたらいいのかとか…
試しにサーバーに上げてPHPの方に書いたキーワードをpostしてから、サーバーにアクセスしてみたんだけど空リプライが来るだけ。
サーバーにアクセスしなければ何も動きはないです。
302nobodyさん:2009/11/09(月) 22:20:34 ID:???
大した量じゃないんだからコードくらい追えよ
303nobodyさん:2009/11/09(月) 22:32:19 ID:???
>>300
入れてるよ
そのエントリで同じ質問してる人がいたけど結局解決できなかった
304nobodyさん:2009/11/09(月) 23:37:37 ID:???
スレチかもしれないがWebcronって月額いくらくらいかかる?
フォロワー300で、最低でも5分毎に実行させたいんだが…
305nobodyさん:2009/11/10(火) 00:03:35 ID:???
>>304
どうせ金払うならちょっといいレンタルサーバーでも借りた方が良くないか。
月500〜1000円代からでもcronやPHP5やMySQLが使えるところはあるわけだし。

とはいえサイト持ってないなら宝の持ち腐れだろうし、やっぱ人によるかも。
逆に言えばサイト運営してて、尚且つ何か高度なもん設置したいものがあるのなら、
ちょっといいサーバー借りた方がトータルで見ればいい気はする。
306nobodyさん:2009/11/10(火) 00:24:51 ID:???
>>304
自宅に24時間起動&ネット接続させられるマシンがあるならそれでスクリプトを動かしてもいいかも
自分はcygwin+cron+w3mでbot動かしてる
307304:2009/11/10(火) 00:56:46 ID:???
アドバイスありがとう
まさにサイト持ってない持ち腐れする人種なんで、レンタルサーバーは悩んでたんだ
自宅PCも不安定だし、コーヒー代我慢してWebcronのお世話になることにするよ
月額が不安だが…
308nobodyさん:2009/11/10(火) 00:59:51 ID:???
ソース読めないし全然わかんないって人はBOT作る前に最低限、
PHPスレなりその初心者質問スレなり見たほうがいいと思うんだ。
サポセンとは違うんだし。
309nobodyさん:2009/11/10(火) 01:07:13 ID:???
>>301
わからんかったらtxtはそのまま上げろと書いてなかったっけ?
うちは普通に動いてるよ
310nobodyさん:2009/11/10(火) 03:05:08 ID:???
309
ありがとう。
上げなおしたら普通に動きました。
311nobodyさん:2009/11/10(火) 14:50:36 ID:???
>>304
お試し期間で様子見してみたら?
お試し中でも使用量出るし、一週間で消費したクレジット*4すれば大体の目安はつくと思う
312nobodyさん:2009/11/10(火) 17:45:46 ID:???
>>304
5分に一回なら月に150円くらいだった記憶。確信は無いが。
313304:2009/11/11(水) 20:56:33 ID:???
ありがとう。お試し始めてみた
150ならサーバー借りるより全然お得だな
314nobodyさん:2009/11/11(水) 23:48:17 ID:???
特定の語句を含む発言をRTするBOTのRTが、フォロワーのタイムラインに表示されなくなった・・・
315nobodyさん:2009/11/12(木) 07:18:55 ID:???
>>313
同じ事気になってた。
こっちはお試し期間中に色々試す暇がなくてどうせ安いからとクレカで購入してみたが
消費量チェックする度にチマチマ増えてるんで何か焦るw
五分に一回でもフォロワ300人は怖いよね、リプライの量が。

cron-jobが使えたらな。
ファイル大きいとか失敗ミャハ☆とかばかりでまともに動いてくれないんだ。俺の日頃の行いが悪いんかな。
316nobodyさん:2009/11/14(土) 12:06:15 ID:???
ばずったーから単語を持ってくるのってどうやんの?
317nobodyさん:2009/11/15(日) 07:57:14 ID:???
スクレイピングしろ
318nobodyさん:2009/11/15(日) 09:02:34 ID:???
ttp://www.sukechan.net/archives/62/
これってソース丸コピペしてIDとパスワード変えるだけじゃだめ?
あとできればキーワード全部じゃなくて1番目だけを取得してポストしたい
319nobodyさん:2009/11/15(日) 10:40:05 ID:???
>>318
・HTTP_Clientが必要
・for文消して$iを固定で1にする

てか聞きたいならやってみて出たエラーくらい書きなさいな
320nobodyさん:2009/11/15(日) 20:17:39 ID:???
phaさんのスクリプトを使っています。

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

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

やはりスクリプトと根本から弄らないと無理でしょうか?
321nobodyさん:2009/11/15(日) 22:01:01 ID:???
a
322nobodyさん:2009/11/15(日) 22:01:53 ID:???
>>320
PHPの書き方の問題なの?それともアルゴリズムの問題?
323nobodyさん:2009/11/15(日) 23:56:13 ID:???
>>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は二分おきに起動される

(続く)
324nobodyさん:2009/11/15(日) 23:57:19 ID:???
続き

--------
そんで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"])とか書き込む
(一行ずつ項目ごとに半角カンマとかで区切って)

これで出来るような気はする。だれかもっと詳しい人いたら突っ込みとか入れてほしい。
ただ受け取るリプライの数が多かったりしたらファイル壊れるんじゃ、とかそういうのが気になる、その辺は自分も詳しくないんでパス
だれかもっと詳しい人いたら突っ込みとか入れてほしい。
必ずローカルでテストしてからにしてね
がんばってね
325nobodyさん:2009/11/15(日) 23:57:21 ID:???
2個モジュールをおいて各の自動実行間隔を2分と8分にすればいいだけ
326nobodyさん:2009/11/16(月) 11:34:55 ID:???
もうちょっと汎用的に作ろうよ
327320:2009/11/16(月) 18:31:33 ID:???
>>323さん、>>325さん、ありがとうございます。
自分のやりたい事は>>325の方法で出来そうなので、
試してみたいと思います。有り難うございました!
328nobodyさん:2009/11/16(月) 19:25:29 ID:???
>>319
とりあえずHTTP_ClientっていうのをDLしてServices_Twitterと同じ要領でbotのサーバーに入れてみた
で、>>318をコピペして動かそうとしたがエラー出ないしpostもされなかった
329nobodyさん:2009/11/16(月) 20:22:18 ID:???
エラー出せ
330nobodyさん:2009/11/16(月) 21:00:56 ID:???
>>329
<丶`Д´>呼んだニカ?
331nobodyさん:2009/11/17(火) 10:06:08 ID:???
いつもいつもエラーが出るって言う初心者なんでそのエラーメッセ書かないかな。
332nobodyさん:2009/11/17(火) 10:24:17 ID:???
自分がわからない文章に意味があるとは思えないからだろうねえ
333nobodyさん:2009/11/17(火) 17:07:00 ID:???
半自動フォローでbotがフォロー返す時に「フォローしました」のメッセージをつけたいんですが、
どう書き変えたらいいんでしょうか?

ソースはこちらを使わせて頂こうと思っています
tp://dream-aquarium.net/twitter/sample/source.php?twetterFollow.php

よろしくお願いします
334nobodyさん:2009/11/17(火) 19:50:15 ID:???
335nobodyさん:2009/11/19(木) 21:13:08 ID:???
Postごとにアイコンを変えるってのをしたいんだけどどうすればいい?
例えば喜のPostのときは喜んだアイコン、怒のPostのときは怒ったアイコンって感じで
336nobodyさん:2009/11/19(木) 21:37:00 ID:???
Twitterにそんな機能あんの?
変えるのはやってできないことはないと思うけど、それだと喜のあとに怒のpostしたら結局怒アイコンになるんじゃ
337nobodyさん:2009/11/19(木) 21:56:10 ID:???
>>336
仕様書見る限りupdate_profile_image使えばいいっぽいんだけどどうすればいいのかわからなくて
喜怒哀楽は例であって作りたいのはある作品のキャラごったにbotを作りたいんだ
その台詞を言ったキャラのアイコンでPostやリプライを送る。どんなキャラが出てくるのかはランダムで
338nobodyさん:2009/11/19(木) 22:07:55 ID:???
いやだから最後に送ったアイコンが全ての発言に付加されるのでは?
339nobodyさん:2009/11/19(木) 22:13:57 ID:???
ああ、過去の発言も全部その瞬間にアイコンが変わっちゃうんだな
Post間隔長いのならわざわざ過去の見ないだろうがリプライとかは無理か
340nobodyさん:2009/11/19(木) 23:54:38 ID:???
発言ごとにアイコンを保持はできんから>>336だし
クライアントによってはアイコンをキャッシュするから変えてもすぐには反映されんかもしれん。
341nobodyさん:2009/11/20(金) 15:58:52 ID:???
こないだ携帯の白いお父さんが毎回アイコン変えてたけど
同じキャラがキョロキョロするとかならかわいいと思った
342nobodyさん:2009/11/20(金) 23:48:02 ID:???
>>336
喜怒哀楽の感情ごとにアカウントとってリストで読ませる
343nobodyさん:2009/11/21(土) 00:07:11 ID:???
これをやってみようと思うんだけどcURLってのがわかんね
ttp://d.hatena.ne.jp/bardothodol/20090801/p1
344nobodyさん:2009/11/21(土) 00:08:06 ID:???
php勉強しれ。
345nobodyさん:2009/11/23(月) 20:10:45 ID:???
OAuth認証(参考:ttp://wolf.silk.to/labo/oauth.html)でbot動かしてる人いる?
in_reply_to_status_idつけてpostするようにしても、付与されないんだけど・・・
346nobodyさん:2009/11/23(月) 22:22:45 ID:???
phaさんのプログラム使わせてもらってるんだけど、
ランダムリプライと、指定した単語にリプライの両方使ってて、
片方のBOTは反応単語以外のリプライを受け取ると
ちゃんとランダムリプライしてくれるんだが、
片方は反応単語以外のリプライを受け取ると
必ず空リプライしてしまうんだがなんでだろう?

ちなみに、おかしいと思って、きちんと動作する方の
プログラムまるまるコピペしてユーザー名書き換えて
アップロードしてみたり、Services等その他諸々の
フォルダも全部アップロードし直したりしたけどだめだった…
347nobodyさん:2009/11/23(月) 22:28:39 ID:???
何を言っているのか分からない
348346:2009/11/23(月) 22:41:32 ID:???
ごめん、つまり空リプライの原因は何なのかって事が聞きたかった。

今自分で読み返してもなに言ってるか分からなかった
349nobodyさん:2009/11/23(月) 22:50:38 ID:???
変数の中身でも出力させてみたら?
350nobodyさん:2009/11/24(火) 01:09:13 ID:???
>>345
そっちがどういう風に送ってるのか知らんけど
先頭に@名前 ついてないと無効って仕様はあるみたいだが。
351nobodyさん:2009/11/24(火) 04:54:49 ID:???
>>348
自分のフォロワーに同じことで悩んでる人がいたなw
その人もbotを複数作ってて、ある一つのbotが空リプライするって、同じこと呟いてたけど、まさか…?w

それはともかく、自分のbotも反応ワード以外のリプライを貰うと空のリプライしてたんだけど、textのデータを弄ったら直ったよ。
サーバにアップしてあるtextのファイルがあるでしょ?
どうやらphaさんのは、反応ワード以外のリプライを貰うと、そのtextファイルに書いてあることをリプライするプログラムらしいので、そのtextファイルに、分からなかった場合のセリフを書き込めば良いってわけ。
そうすれば空のリプライしなくなると思う。
352345:2009/11/24(火) 09:40:53 ID:???
>>350
「@名前 」つけて名前とIDが違うと付与されない的なのは把握してるつもりなんだけどね、なんかうまくいかなくて・・・
やり方が間違ってるのかなぁ
ちなみにpost部分はこんな感じにしてます

$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$aaa, "in_reply_to_status_id"=>$bbb), "POST");
$aaaは「@名前 返信内容」
$bbbはステータスID

俺恥ずかしいこと聞いてそうだな・・・
353nobodyさん:2009/11/24(火) 12:25:40 ID:???
>>348
tw.txtの中身が空であるか、改行して空白の行がありませんか?
またサーバーの方で確認して文字コードはUTF-8、改行コードはLFになっていますか?
354nobodyさん:2009/11/24(火) 21:18:07 ID:???
BOT作ってどうすんの?
作る価値ねーしwwwwwwwwwwwww
355nobodyさん:2009/11/25(水) 02:02:43 ID:???
>>354
そう思うんならそうなんだろう。
お前ん中ではな。

AA略
356nobodyさん:2009/11/25(水) 03:17:51 ID:6oiYyRxa
cron-job.orgで「cronファイルが大きい」って言われた。
ググっても解決策ゼロ。
誰か助けてください。。。
357nobodyさん:2009/11/25(水) 03:21:26 ID:???
cronファイルを小さくしろ
358nobodyさん:2009/11/25(水) 03:27:51 ID:6oiYyRxa
>>357
どうやって?
もう削るとこないです・・・
359nobodyさん:2009/11/25(水) 03:28:38 ID:???
バックスペースキー
360nobodyさん:2009/11/25(水) 03:31:21 ID:6oiYyRxa
>>359
それってどういう意味ですか?
もう消す場所ないです;;;
361nobodyさん:2009/11/25(水) 03:35:18 ID:6oiYyRxa
こんどはURLが違うって言われた・・・あってるのに…
362nobodyさん:2009/11/25(水) 08:01:11 ID:???
GoogleAppEngineでcron動かしてる人いたら教えて

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

バージョン変えてデプロイし直してもうまくいかない。
何がおかしいんだろうか…
363nobodyさん:2009/11/25(水) 08:08:35 ID:???
もうちょっと要点をまとめてくれ。
364362:2009/11/25(水) 08:26:52 ID:???
わかりづらくてすまん。
botにリプライ飛ばしたとき

・直接PHPページにアクセスするとリプライ拾える
・GAE経由だとリプライ拾えない。(デプロイ直後は拾えるがそのうちダメになる)
・GAEのcronjobにはエラーなし
ってことなんだ…
365nobodyさん:2009/11/25(水) 14:21:04 ID:w36IBMdL
これ動かなくない?ただコピペしただけじゃ駄目なの?

http://d.hatena.ne.jp/rdcs/20090619/p1

「PHPでtwitterに投稿する」の時点で躓いた。
366nobodyさん:2009/11/25(水) 14:22:07 ID:???
エラーメッセージくらい見れよ。はぁ・・・。
367nobodyさん:2009/11/25(水) 14:22:47 ID:???
大方全角スペースが入ってるとかだろ
368nobodyさん:2009/11/25(水) 14:24:12 ID:w36IBMdL
どうやって見るの?
369nobodyさん:2009/11/25(水) 14:35:02 ID:???
エラーの見方も分からんでプログラムやってんの?
370nobodyさん:2009/11/25(水) 14:39:11 ID:???
まずはそれを設定したhttpdのエラーログ見ろよ
371nobodyさん:2009/11/25(水) 21:34:37 ID:???
cron-job.org使ってつまずいてる人が多いけど、cron-job.orgはマトモに使えるレベルの安定性じゃないと思う。
確かに無料だけどcron-job.orgの設定で毎日毎日苦労してるんなら
月100円くらい出してwebcron.orgを使うことを個人的にはお勧めしたい。動作は安定してるよ。
372nobodyさん:2009/11/26(木) 07:22:56 ID:???
クレカの審査落ちるから使えないんだよ!!
373nobodyさん:2009/11/26(木) 10:32:51 ID:???
まず働けよ
374nobodyさん:2009/11/26(木) 12:12:55 ID:???
webcronが新しくなったとたん全然動かなくなったんだけど
同じ症状の人います?
375nobodyさん:2009/11/27(金) 19:39:09 ID:???
>>356
ファイル大きいって言われてもちゃんと動くぞ。
動かないならソースがおかしいかも。エラーは出なくてもどっかしら
汚いソースの部分があるんじゃないかと。

それより勝手にNeinになる仕様どうにかしてくれ。
376nobodyさん:2009/11/28(土) 07:10:32 ID: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;//おしまい
}
}
}
377nobodyさん:2009/11/28(土) 08:45:14 ID:???
全部確認してくださいじゃなくて具体的に分からないとこを聞け
正規表現を特に聞きたいんでしょ?
378nobodyさん:2009/11/28(土) 09:21:58 ID:???
//メッセージ用の変数を宣言
というか初期化だな。

//$patternの中に"@?@@"が有ったら"?@"に変換??
なんで@なんて使ってるのか知らんけど左右の@は区切りのはず。
大抵/@/や#@#あたりじゃないんかな。だから@を@に置き換えてる。
他の部分知らんがなんでだろ。
379nobodyさん:2009/11/28(土) 19:52:45 ID:???
phaさんのスクリプトの1.41使ってるんですが

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

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

>379
自分もそう。4で入れてるのに1回しか返さないわ…
381nobodyさん:2009/11/28(土) 21:06:37 ID:???
ここのスレの人はみんなphaさんとこの使ってんの?
382nobodyさん:2009/11/28(土) 21:12:58 ID:???
え?
383nobodyさん:2009/11/29(日) 00:24:12 ID:???
ランダムポスト・@もらったあとのランダム&パターンリプライ→phaさんのとこの
TL上の単語に反応させてリプライ→プログラミングを始める10の理由からコピペ
↑のに加えてどのポストに反応したかの紐付け→銀さんのBOTのin_reply_to_status_idの記事から

今のとここんな感じ
384nobodyさん:2009/11/29(日) 01:37:43 ID:???
>>381
私はあそこのは使ってない。
確かにphaさんのはカスタマイズしやすくて良いんだけど、自分は「プログラミングを始める〜」のとこで公開されてるソースを改造して使ってる。
TLに反応するプログラムも、リプライも定時発言のも全てそこので事足りる気がする。
385nobodyさん:2009/11/29(日) 02:26:40 ID:???
一からコード書いてる俺は異端なのか?
全部自分で書いた方が楽しいじゃん

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

サブで時間帯別のと好感度のものを組み合わせてるが
そっちはどこ改造したらいいのかもまだわからんw
387nobodyさん:2009/11/29(日) 14:37:06 ID:???
>>274 の、時間別に返事が違うっていうソースを入れたいんですけど、
自分は今phaさんの配布しているリプライソースを使っています。
phaさんの配布ソースのどの部分に入れたらいいでしょうか!
リプライパターンphpとも組み合わせたい。

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

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

>>362
GAEはサーバーと距離が短くなくちゃタイムアウトしてしまうらしい?
オススメは@pages。1分間隔でまわせるみたいです。
自分はまだ使ってませんがいずれ入れたい!
388nobodyさん:2009/11/29(日) 14:41:19 ID:???
>>387
PHPの書き方学ぶことをオススメする
389nobodyさん:2009/11/29(日) 20:59:32 ID:???
有料でもいいけど一番安定してBOTが動く鯖ってどこだろう?
390nobodyさん:2009/11/29(日) 21:51:04 ID:???
>>387
どこに入れればいいかじゃなくて、入れて動かしてみて、うまくいかなかったときに聞いたほうが
答えをもらえる確率は上がると思うよ
ここはphaさんソースの改造方法について教える場所ではないからね
391nobodyさん:2009/11/29(日) 23:21:39 ID:???
>>381
自作でちょびちょびいじりながらやってる。
ていうかここってBOT製作支援スレであって、配布BOT利用支援スレじゃないと思うのよね。
まあわかる範囲では質問にも答えるけど。
しかしなるべくメンテフリーで面白いBOTってのはなかなかうまいこといかんね。
392nobodyさん:2009/11/30(月) 07:43:42 ID:???
botが全て沈黙しているのは自分だけでいいよ…

昨日まではちゃんと動いてたのにいきなり無言になりおった
393nobodyさん:2009/11/30(月) 21:09:26 ID:???
>>392
サーバーの仕様が変わったとかcronファイルが壊れた…とか?
394392:2009/11/30(月) 21:46:49 ID:???
>>393
ありがとう。
とりあえずphaさんの使用してて、ファイル全入れ替え+別鯖(さくらから@pages)に移動して実行してるのに、同じ状況。
ほんとにいきなりリプライしなくなったので原因がさっぱりわからない。
もし同じ症状のひとがいたらと思ったけれど、いないのかな?
395nobodyさん:2009/11/30(月) 22:10:29 ID:???
>>394
API規制じゃないの
396nobodyさん:2009/12/01(火) 00:22:49 ID:???
API規制ってアカウントごと?それともIP?
397nobodyさん:2009/12/01(火) 00:40:46 ID:???
@pagesは反応にぶいよ
cronが動いててもすぐ接続がタイムアウトしちゃうらしい
さくらのBOTに比べて格段に反応が鈍い
398nobodyさん:2009/12/02(水) 13:36:20 ID:???
無料だからなぁ文句はいえんだろ
399nobodyさん:2009/12/03(木) 09:37:10 ID:???
cron-job.orgが不安定すぎるのでGoogleのAppEngine試してる
大体は安定して叩いてくれてるけど、
実行時間が毎日1分〜2分ずつくらい遅れてきてるのが気になる
400nobodyさん:2009/12/03(木) 12:35:16 ID:???
プログラム自体を変えたら、cron-jobでも全然気にならなくなったなぁ。
cronが度々アクセスに失敗しても、貰ったリプライには全レスするし、もうこれでいいやってなってる。
401nobodyさん:2009/12/03(木) 18:06:44 ID:???
>>400
プログラムは自作?
402nobodyさん:2009/12/04(金) 02:13:13 ID:???
自分もAppEngine試してるけど半日で止まるわー
8つ回してるけど1つだけ何度上げても止まる
鯖はさくらで中身全部同じなのにわけわからん…
GAE使ってる人はJAVAとPythonどっちでやってる?
403399:2009/12/04(金) 11:17:32 ID:???
>>402
遅れはするが止まるまではいかないぞ?
実行自体はほぼ安定してるし…ちなみにJAVA
404nobodyさん:2009/12/04(金) 12:39:33 ID:???
cron-job.orgを使ってるんだが、ドイツの日付が変わった瞬間から設定が勝手にNeinになる
このスレ見てると同じような不具合多いみたいだし、
webcronとやらに移ったほうがよさそうだね
ただ、自分のクレジットカード作れる年じゃないから
またカーチャンに個人情報洩れるんじゃないのって渋られそうだw
405nobodyさん:2009/12/04(金) 12:58:49 ID:???
ドイツの日付が今日になったあたりからcron-job.orgに繋がらなくなった(DNSエラー)んだけど…ドメインの期限切れか何かかな。
406nobodyさん:2009/12/04(金) 13:09:03 ID:???
俺もGoogleAppEngin使ってるけど安定してるよ
止まることも遅れることも、今のところない
ちなみにPHP
407nobodyさん:2009/12/04(金) 14:03:06 ID:???
Googleのって、Macだと無理っぽい?
botのためにブートでWindowsを立ち上げるのもなんだかな…。
408nobodyさん:2009/12/04(金) 14:47:20 ID:???
GoogleAppEngine bot twitter phpでぐぐったら
一から十までcronの動かし方を説明してくれてるページをみつけて歓喜したんだが
肝心のソース説明画像がキャッシュに残っていなかった…orz
409nobodyさん:2009/12/04(金) 15:05:25 ID:???
さくら使ってる人ってcronもさくらで動かしてる?
安定させたくて@pagesからさくらに移ったんだけど負荷がかかるからってcron止められてしまった
結局cron-job.org使ってる
410nobodyさん:2009/12/04(金) 16:23:12 ID:???
>>408
画像じゃなくてテキストで説明書いてくれてるところがあるだろ
もうちっとググれ
411nobodyさん:2009/12/04(金) 17:36:16 ID:???
GAEに関してはモノクロ二階調ってところがわかりやすかったらしいが今は見れなくなってるな
どうして消したんだろう
412nobodyさん:2009/12/04(金) 17:50:57 ID:???
ホントだ、記事消えてるね…
たしか消えた記事内で参考にしたと書かれていたブログ記事の方は
まだ残っているから、そっちを探せば出来るとは思うけど
413402:2009/12/04(金) 20:39:49 ID:???
>402だが
今日見直したら止まってると思われた奴はまた動いていた
GAEはタイムアウトのタイミングがシビアなのかもしれん…
>411のサイト見て作ったのでJAVAで動かしてたが
何か問題でもあったのかな
414nobodyさん:2009/12/04(金) 22:54:07 ID:???
噂の参考サイトがなくなってGAEの動かし方が分からないぞ

>>413
GAEって30秒でタイムアウトじゃなかったっけ、それにひっかかってるとか?
415nobodyさん:2009/12/04(金) 23:09:13 ID:???
質問厨に疲弊して消したらしいぞ。>モノクロ二階調

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

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

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

>現状記事の再掲載は未定です。良い解説記事が見つかるのを祈ってます。
>その際はそちらを管理されている方の負担にならないよう、
>「人事を尽くす」努力をお願いします。(私が言う事ではありませんが…)
417nobodyさん:2009/12/04(金) 23:17:09 ID:???
質問厨はどこにいっても害しか産まないのか
地道にやるしかないかなぁ
>>415-416情報ありがとう
418nobodyさん:2009/12/04(金) 23:17:31 ID:???
cron-job.orgが勝手にneinになるのってやっぱ向こうが日付変わる頃だよね…
ところで勝手にneinになるのとjaのままのとがあるんだけど何か条件あるのかな

今9個job設定しててそのうちの2個はいつもjaのままなんだけど
post内容が違うだけでほぼ同じソースなんだよね…
ファイルサイズもそんなに重くない…というかneinになっちゃうやつのほうが軽い奴もある
あと勝手にneinなるのはfehlerhaftも出やすいみたい…
419nobodyさん:2009/12/05(土) 00:08:03 ID:???
botの作り方系のブログは、どこも
「○○行目でエラーが出るんですけどどこがおかしいのか分かりません」
↑どんなエラーとも書いていない。結局全角スペースが入っていたとかそういう問題
「○○を書き換えて、って書いてありますが場所がわかりません」
↑その記述は一箇所しかないから探せば見つかる

とかそういう質問山盛りだからな…モノクロ二階調さんのところは本当にお疲れ様です、としか…
420nobodyさん:2009/12/05(土) 00:27:12 ID:???
ツリー型の質問掲示板のタイトルに「教えてください」ってのが10年前からあったしな。
あとよくわかってないのに自分の解釈をやたら書く質問者も。
相手はエスパーじゃないんだから教えて欲しいことを伝える努力は必要だわな。
421nobodyさん:2009/12/05(土) 00:38:08 ID:???
とりあえずGAEでcron動かすのやってみよう。。。

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

>>419-420
質問するにも初心者(笑)なのが多いのか。
ググり方も分からないやつなのかな
てかたまに偉そうなやついるよね、上から目線の。
422nobodyさん:2009/12/05(土) 00:47:40 ID:???
教わらないとわからないって人はそれなりの割合いる。
エラーメッセージでぐぐれば問題を絞れるはずだが、
ぐーぐる先生の資料集めとしての使い方が思いつかない人はそれなりの数いる。
WikiPediaみたいにまとまってたり聞いたらすぐ答えてくれるようなとこしか行かないのだろうし。
423nobodyさん:2009/12/05(土) 21:07:44 ID:???
>>416
しかしbotの方にDM送るなんてひどいな
なに考えてんだ
自分もbot作ろうとしてるのにそのbotに関係ないメール送られて気持ちとか考えないのかね
424nobodyさん:2009/12/05(土) 21:49:15 ID:???
自分も最初は初心者だったが…
ある程度は自分で調べないと何かあった時に対処できんから恐いわ
phaさんのしたらばのは初心者(笑)ホイホイにならないことを祈る
425nobodyさん:2009/12/05(土) 22:45:17 ID:???
>>424
それマジ心配してる。でも今もう既にそうなりつつあるような…。
phaさんのプログラム以外の質問とか、PHPと全然関係ない質問多い気がする。
あまりに初心者すぎな質問であふれかえってphaさんが
疲れてしまってサポート放棄されたり、
最悪配布を中止されたりしてしまうんじゃないかと不安だ……。
426nobodyさん:2009/12/06(日) 01:00:27 ID:???
http://d.hatena.ne.jp/genhou/20090201/1233499182
↑ここを参考にしてbotを作ってみたのですが、エラーが出て上手くいきません。

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

このPHPを実行したところ、下記のエラーが出ます。
Warning: simplexml_load_file(http://pcod.no-ip.org/yats/search?query=****&rss) [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 "http://pcod.no-ip.org/yats/search?query=****&rss" in /xxxx/twitter_bot.php on line 22

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

どのように修正すれば解決するでしょうか?
427nobodyさん:2009/12/06(日) 01:07:16 ID:???
external entityのロードに失敗してる
428nobodyさん:2009/12/06(日) 01:54:58 ID:???
>>427
そうですね、failed to load external entity とありますからね。
これは、どのように修正すれば解決するでしょうか?
429nobodyさん:2009/12/06(日) 02:05:31 ID:???
22行目の処理でなんか失敗してるんでしょ?
サイトから情報引っ張ってくるんだったら、サイトの読み込みに失敗したとか、searchの条件に合わないとか
そんな感じなんじゃ
430nobodyさん:2009/12/06(日) 02:13:57 ID:???
>>429
では、例えば検索語を "hogehoge" にするとします。

http://pcod.no-ip.org/yats/search?query=hogehoge&rss

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

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

くどくて申し訳ありません。
431nobodyさん:2009/12/06(日) 02:27:44 ID:???
ぐぐれよ
432nobodyさん:2009/12/06(日) 03:13:19 ID:???
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のアドレスではないんですよね?
433nobodyさん:2009/12/06(日) 04:51:05 ID:???
>>432
お前さんがGAEで作った領域のアドレス入れるべし
434nobodyさん:2009/12/06(日) 09:26:28 ID:???
>>431
ぐぐってわからなかったのでここに書きました。
435nobodyさん:2009/12/06(日) 11:25:19 ID:???
設定ファイルから反応する語句リストを読み込んで正規表現でマッチングさせて指定した関数を呼び出すか対応するセリフリストを呼び出してランダムに一つ発言させるコードならさっき出来上がった(バグ取りなう)けど、必要なら公開しても良いよ。@PHP
436nobodyさん:2009/12/06(日) 11:40:41 ID:???
>>435
よろしくお願いします!
437nobodyさん:2009/12/06(日) 11:44:11 ID:???
>>430
22行目だけ動かしてみたんだけど、うちの環境でも同じエラーになった
なんだろうなぁ

>>435
そういうときは「必要じゃないかもしれないけどうpする」のが2ちゃんのしきたりだろ
しきたり守れよ
438nobodyさん:2009/12/06(日) 12:58:19 ID:???
>>437
ちょっと別の検索サービスを試してみました。

$xml = simplexml_load_file('http://twiple.jp/status/search.atom?s=1&q='.$search_word.'&lang=ja');

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

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

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

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

を定義してみましたが、状況は変わらず… 的外れだったようです。
439DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/06(日) 13:17:05 ID:I4htWoWi
>>437
ご指摘ありがとうございます。
申し訳ないのですが、まだ公開できるほどバグ取りが進んでいません。
今日中には公開できるようにしますのでしばしお待ちください。
セリフリストの文法ですが、
@.*バルス!.*=バルス
とした場合は正規表現で.*バルス!.*に反応しセリフファイル「バルス」を読み込みランダム一行をリプライします。
~.*爆発しろ=bakuhatsu
の場合は関数「bakuhatsu」を呼び出し発言を第一引数とします。
関数は個別にプラグインファイルで対応しますので根幹のシステムへの変更は行われません。
=が入る発言に対してバグがあるので=が入る発言への対応を検討中です。
それだけですが現在公開できるように早急にバグ取り、公開用の(既存の)設定クリーン中です。本当に申し訳御座いません。
トリップも付けていませんでした。すみません。
元来自分用に開発していたもので…
440nobodyさん:2009/12/06(日) 18:03:07 ID:???
>>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);
} } }
が間違ってるんでしょうか。
441nobodyさん:2009/12/06(日) 19:25:38 ID:???
>>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>
442DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/06(日) 19:53:33 ID:???
関数呼び出し手順に変更です。
reply.listに~<正規表現>と記述した場合、関数に渡される文字列は@IDを除いた単純発言部分となります。
プラグインファイルを作りたい香具師は準備願います。
おまけにどう読むのプラグインを添付します。(requires nkf,kakasi)ご活用くだしあ。
補足として$prof[]でボットのプロフィールにアクセスします。(別途ファイルを用意してあります)
$conf[]でついった関連設定ファイル(以下同)

公開用ぺーじの設計に手間食ったりしてます。しばしお待ちを。
443nobodyさん:2009/12/06(日) 20:07:15 ID:???
>>442
期待!
444DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/06(日) 20:19:49 ID:???
何度も申し訳ないですが、プラグインファイル(作ってくれそうにないが)の使用を規定します。
1. <?php で始まり ?> で終了すること。
2.呼び出される関数を保持すること。呼び出される関数が主処理関数であること。
3.受け取った文字列を処理する場合(特に外部ファイル、プログラムへの受け渡しをする場合)h(文字列);でエスケープすること。
4.$debugはデバッグスイッチです。d(変数);でダンプ可能ですので積極的なデータ表示をお願いします。
だいたいこのくらいでしょうか。呼び出し元の@IDは$idで取得可能です。
その他、プラグインファイルは/AI/に保存願います。利用の際は/conf/plugins.listに
loadplugin('hogehogewaros.plg');のように拡張子込みで登録お願いします。
人格?の利用を前提としているので初期設定スクリプトを書いています。お待ちください。
445nobodyさん:2009/12/06(日) 20:24:06 ID:???
>>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);
}
の後ろに同じ文を重ねていけばいいんでしょうか
446nobodyさん:2009/12/06(日) 23:42:18 ID:???
>>440
自分もそのコードが載ってるブログを参考に作ってるんだが、
ウェブ上で動いてるのを確認する方法として紹介されている
http://設定したApplication id.appspot.com/設定したプロジェクト名
にアクセスするとxmlコードが剥き出しで表示されてしまう
これは何らかのミスがあるということなのかな…?
成功した場合はどのように表示されるのだろうか
447DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/07(月) 00:16:02 ID:???
遅れています。
圧縮に手間を食っているようです。でき次第公開します。
448DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/07(月) 01:30:55 ID:MdLiWJgY
http://knowledge.ddo.jp/meltan000.tar.gz
一応こっそり公開します。
使い方、インスコ方法はウィキに乗せていくのでそれの完成を待ってください。
とりあえず公開するだけです。
449nobodyさん:2009/12/07(月) 06:37:19 ID:???
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の横に出るアイコンじゃん…関係あるの…
450nobodyさん:2009/12/07(月) 09:57:08 ID:???
形態素解析ってみんな何使ってる?
Mecab使ってみてるけど他のがよさげならそっちも試してみたいんだけど。
451nobodyさん:2009/12/07(月) 11:05:01 ID:???
>>448
うぽつ

>>449
よくわからんが、GAEでのcronは某サイト見ながらJAVAでやってるの?
それとも自前?
452nobodyさん:2009/12/07(月) 15:47:55 ID:???
>>449
GAEでの”/自分のアドレス”ってappengine.google.comで見たときのTitle=eclipseのpackageの名前じゃないか?
eclipseでも同じ名前にしてる?
あとローカルで開くってのがブラウザで開いてるということならブラウザがfaviconを探しにいく
当然favicon見つからず404になる

>>450
Yahoo APIの使ってる。
453DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/07(月) 19:31:13 ID:MdLiWJgY
開発が一段落したので公開中のwikiを載せます。
ttp://knowledge.ddo.jp/
発展途上なので機能は貧弱ですがプラグインファイルの開発を手伝っていただければ良いソフトになると思います。
次スレがあればテンプレに組み込んでいただけると嬉しいです。
454nobodyさん:2009/12/07(月) 20:18:17 ID:???
>>453
ごめん全然関係ないけど…土壇場って独壇場じゃね?
455nobodyさん:2009/12/07(月) 20:54:23 ID:???
phaさんとこちょっと見てて前から不思議だったんだけど
あのスクリプトってそんなに環境によって動かないものなのか?
自分もプログラミングなんて全くの素人だがphaさんの使って
無料のサーバーでCron-jobから某サイトを参考にGAEで動かして
エラーになったりしても調べてなんとか解決できたし自分で変更もした
自分がたまたま運がよかったのか?
456nobodyさん:2009/12/07(月) 21:27:13 ID:???
運の問題にしないで原因調べたら?
457nobodyさん:2009/12/07(月) 21:31:58 ID:???
>>455
>エラーになったりしても調べて
が出来ないんだろう。
環境はIE6です!みたいなこと言ってた人も居たし…。
エラー文読む気ないから丸投げ。

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

しかし今朝から本家不安定でうちのも不調だわ。
458DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/07(月) 21:35:20 ID:???
>>454
あれ?変換間違えました?
459nobodyさん:2009/12/08(火) 01:05:41 ID:???
好きに書きゃいんじゃね。
相手が求めてるような楽屋裏話なんてないんだからそういうのがわかりゃ勝手に離れてくさ。
460nobodyさん:2009/12/08(火) 01:06:21 ID:???
間違えたごめん。
461nobodyさん:2009/12/08(火) 05:26:14 ID:???
某サイト参考にGAEで動かそうと作っていたんですがtestcronの中にTestcronServlet.javaが何回プロジェクト作り直しても出てこないんですがどうすればいいですか?
ファイル作成しようにも調べ方が悪いのか参考になりそうなページ出てこなくて息詰まってますorz
462nobodyさん:2009/12/08(火) 06:35:04 ID:???
>>461
自分もそれなったけど、
プロジェクト作成時に「Google Web ツールキットを使用」の
チェックを外さなかった、に30ペソで。
463461:2009/12/08(火) 06:41:40 ID:???
>>462
ありがとうございます!!!
チェック外して作り直したらちゃんと出てきてくれました!!!
464nobodyさん:2009/12/08(火) 09:13:00 ID:???
チェックを外す、とかの記載ないから忘れやすいは忘れやすいところだな

>>450
何それおいしいの?
ごり押しおいしいれす(^q^)
465nobodyさん:2009/12/08(火) 15:14:16 ID:???
土壇場(どたんば)
独擅場(どくせんじょう)

真ん中の字は違う。
466nobodyさん:2009/12/08(火) 15:57:36 ID:???
土壇場(どたんば)
独擅場(どくせんじょう)
独壇場(どくだんじょう)

日本語って難しい
467nobodyさん:2009/12/08(火) 16:19:53 ID:???
独壇場と独擅場の違い
tp://www.nhk.or.jp/bunken/research/kotoba/kotoba_qq_03070101.html
へえーAA略

GAEでcronがちゃんと動いてるのにリプライ拾わない事が多々ある
@で話しかけてから
Cron Jobsをチェック→on time successだがリプライ返さない・Logs見ても200
http://hogehoge.appspot.com/hogehogeにアクセスすると
指定時間内のリプライないよと言われる
でもブラウザでphpにアクセスするとリプライをちゃんと返す
だが放置してるとちゃんと拾う時もある
もう自分では原因が分からん…

GAEはモノクロ2階調さんのを参考にJAVAで動かしてる
同じソースで作った他の定期ポストは絶好調なんだが
こうしたらいいんではとかあれば教えて下さい
468nobodyさん:2009/12/08(火) 17:03:32 ID:???
>>467
自分も同じ状況だ
GAEはタイムアウトの判定がシビアだから、
自分の鯖とGAEの距離が長すぎると駄目なのかもって意見をどこかで見た
ちなみに自分はロリポにPHPを置いたときは全くリプライが返ってこず、
@pagesに変えたら五割ぐらい返すようになった
あと、24時間以内に同じ内容は投稿できないからそれに引っ掛かってる可能性もなくはないか?
469467:2009/12/08(火) 17:39:13 ID:???
>>468
うーん同じ内容の投稿制限は引っ掛かってない筈。リプライの数は割と多めだし
それに同じ内容でも@Aさんと@Bさんに返すのは別投稿扱いだし

リプライ数がスクリプトを重くしてるからか?とも思ったんだが
30分定期ポストの方が長いくらいなのにそっちは成功してる
リプライ回す時間は5分だからそこまで無茶してるとも思えない
この差がわからないんだよなー
どっちも動きが悪かったら鯖が悪いんだと思えるんだけど…
たまにちゃんと返しまくる事もあるからphpも悪くない…筈w

以前cron-jobでやってた時に@pagesが重くてさくらに変更して
今はそのままさくらで使ってるんだが…一度動かない奴だけでも鯖変えてみるよ
ありがとう
470DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/08(火) 20:06:19 ID:???
>>450
使うとしたらchasen + nkf
471nobodyさん:2009/12/08(火) 23:27:44 ID:???
今日の午前中くらいまでは正常に動いていたのに
夕方くらいから急にGAEで失敗続きになってしまった・・・

Twitter本家も無関係の人のTLが流れたりしてるみたいだし
何かサーバーの調子が悪いんかな?
他にもGAE使ってて同じような人居る??
472nobodyさん:2009/12/09(水) 00:06:04 ID:???
ノシ
もう全無視よりいいやとcronjobも並行してみたが
結局どっちも動き悪い
閲覧はクライアント使ってるけど昨日くらいからAPIエラーも多発してるし
細かい鯖落ちも頻発してるみたい
473nobodyさん:2009/12/09(水) 02:56:14 ID:???
GAEでやってる人Dashboardのグラフどうなってる?
30分定期ポストのは0から0.004の間でvvvvvvvvvて感じなんだが
動きの悪い5分のリプライの方は0.004あたりでずっとまっすぐなんだ
時間の幅が大きいからかと思ったが以前テスト用に作った2分定期のはvvvvだった
まっすぐなのはずっと処理が終わってないってことなのかね…
でもリプも返す時は返すしその時もグラフはまっすぐなんだがw
474nobodyさん:2009/12/09(水) 09:31:03 ID:???
同じく0〜0.04くらいでVVVVVVだな
昨日はいきなり0.013くらいまでハネ上がった時間帯があったが
475nobodyさん:2009/12/09(水) 12:48:01 ID:???
cronjob本当に動き悪いな
1時間1回にセットして10時間経過見てたけど1回しか動かない
476nobodyさん:2009/12/09(水) 15:10:48 ID:???
cron-jobの動きが悪いからWebCron.orgに移行考えてるんだけど
支払いとかではトラブルになった事はない?
海外サービスはその辺りがどうも不安
477nobodyさん:2009/12/09(水) 15:39:23 ID:???
話を切って悪いんだけど相談させてください。
botが完成してあとはIDを取るだけなんだけど既に他の人が自分と全く同
じbotを作ってた。
でも、その人はIDだけ取っておいてbotは全く動かしていない状態なんだ
けど、こういう場合はどうしたらいいんだろう。
気にせず自分のbotを上げていいのかな・・・
478nobodyさん:2009/12/09(水) 15:48:28 ID:???
>>477
微妙にスレ違いだと思うけど
同人板にTwitterスレあるからそっちで聞いたほうがいいかも
そっちでもたまにbotの話題になってるから。

他の、例えば天気予報や占い等の否キャラbotなら気にしないでいいと思う
479nobodyさん:2009/12/09(水) 16:09:54 ID:???
ごめん、478の最初のほうは「キャラbotなら」という前提の話しです
480nobodyさん:2009/12/09(水) 17:26:34 ID:???
>>477
別にいいんじゃないの?
俺もキャラbot作っててその状況なったことあるけど(しかも後者)
別にそのまま気にせずやってるなぁ
キャラbotでも複数あるキャラとかあるし
それぞれに面白みがあればいいんでないかな
481nobodyさん:2009/12/09(水) 17:38:38 ID:???
>>477
内容ダダ被りとかでなければいいんじゃないの?
自分も某キャラのbot作ってるけど、友人も同じキャラのbot作ってる
性格がだいぶ違う設定になっているのでフォロワーさんは自分の好みの方を
選んでフォローしてる感じ
実際に「○○のbot見つけたけど下ネタが多くて無理、
もうひとつ違うのがあったからこっちフォローした!」っていう呟きも見たしさ
482nobodyさん:2009/12/09(水) 20:10:44 ID:???
>○○○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>

<url>/○○○</url> のとこに○○○Servlet.javaの○○○入れて
デプロイしてみたらon time Successになるもののツイートできない。
文字化けしてるからコードも見てみたけどUTF-8になってる。
かれこれ5時間ぐらい弄ってるけど何がなんだかさっぱりわからないorz
483nobodyさん:2009/12/10(木) 01:10:25 ID:???
自鯖の人は少数なのかな
484nobodyさん:2009/12/10(木) 02:10:48 ID:???
鯖は立ててないけど自前のPCでやってるよ
PHPさえインストールしてりゃWSHかなんかで自動実行できるしね
485nobodyさん:2009/12/10(木) 03:22:04 ID:???
GAEで30分に1回呟くcronを動かしてて、
慣れてきたからリプライにも反応するように新しくphpを用意したんです。
んでもって新しいアプリケーションと2分間隔で回るファイルを作りました。
いざデプロイしたら元の30分の方まで2分間隔で回るようになって、
しかもリプライの方がひとっことも話しません。
何がいけないのか自分にはさっぱりわからないので知恵をお貸しくださいorz
486nobodyさん:2009/12/10(木) 03:23:40 ID:???
GAEを使わない
487nobodyさん:2009/12/10(木) 05:14:39 ID:???
動かないって人は本体が最近バグ出てるしよく落ちるし
今は様子見の方がよくないか?
明らかなエラーとかでない限り

今まで動いてたやつも動かなくなったりしてる中で
原因特定するのは難しいと思う
488nobodyさん:2009/12/10(木) 06:43:46 ID:???
コナミキャラってやばいの?今作ってるのそれなんだが…
489nobodyさん:2009/12/10(木) 11:25:00 ID:???
そなの?俺コナミキャライパーイフォローしてるが
490nobodyさん:2009/12/10(木) 12:04:00 ID:???
姉ヶ崎作ってた人がサイトに誘導の上寄付を募ってた?らしい
そのコンテンツとかは消された
自分も言われて見にいった口なのでよく知ってる人フォローよろ
でもまだbotは消されてないから大丈夫じゃね?
491nobodyさん:2009/12/10(木) 14:59:50 ID:???
すみません、質問させてください。
Phaさんのサイトを見てbotを作ったんですが、反応しません。
鯖はロリポ、cronはGoogleのエンジンを使ってます。

質問を箇条書きにしてみました。
色々ググってみたけど、途方にくれたのでお知恵を拝借できると助かります。

・Eclipseを使ってアップロードしたんですが、左側のprojectexplorerにある
作ったcronアイコンにバツが付いている。これはどこかで記述ミスをしたものかどうか。

・Google App engineでfavicon.icoがどうのと書かれてます。そのアイコンをまず
どこに設置すればいいのか、そしてapp.yamlは何処に設置するものなのか。
自分で作るのか、作成した元のcronの中に突っ込むのか。そのファイル自体はcronの中には
ありません。

・EclipseでcronServlet.javaの編集の際、プログラムを指定するURLを書くんですが
これは複数のphpファイルを,で区切ってhttp://から指定して書くものなのか

以上です。
よろしくお願いします。どうにも動いてくれないので…
492nobodyさん:2009/12/10(木) 15:47:36 ID:???
basic auth廃止とな(´・ω・`)
493nobodyさん:2009/12/10(木) 16:36:58 ID:???
TwitBot Clubってどうなんだろう
手軽でいいとは思うけどGAEからBAN喰らったら閉鎖とか書いてあるから怖い
494nobodyさん:2009/12/10(木) 16:46:59 ID:???
TwitBot Clubでぐぐってみたら自動bot作成サービスみたいな感じ?
こんなんでライトユーザのbot乱発したら最近ただでさえ鯖不調なのにサーバの負担厳しくないかな。
495nobodyさん:2009/12/10(木) 16:49:39 ID:???
自分がGAEでcron動かすとき参考にした記事にも、
このやり方はBANされるかもって書いてたなあ
botのフォロワーが増えてからBANされたら途方に暮れそうだgkbr
496nobodyさん:2009/12/10(木) 18:50:25 ID:???
ちょっと勉強して自分でプログラム組んだら?
cron jobでも全然問題ないぞ。

phaさんとこのに頼ってる人は有料cronに手を出したりGAEでBANされたり大変そうだな。
497nobodyさん:2009/12/10(木) 19:07:35 ID:???
cron-job、10分ぐらい時間ずれてない?今朝から。
0分にpostさせてるBOTが10〜15分辺りに反応してて。
設定し直したけど直らないんだよなー。
498nobodyさん:2009/12/11(金) 06:19:55 ID:???
>496
少しずつphp勉強してるんだけどphaさんのスクリプトよりbardothodolさんのcurl使うやり方のが軽いのかな?
自分で一から作る力はまだ全然ないからそれならセリフの生成のところだけ入れ替えて書きかえたい
496は全部自作してるん? phaさんのスクリプトの何が問題なん?
499nobodyさん:2009/12/11(金) 09:06:57 ID:???
cron job問題ないか?
ここ3日ほど経過見てるけど1回しかまともに動いてない
勝手に切られてたりするし駄目だろこれ…
500nobodyさん:2009/12/11(金) 09:44:28 ID:???
cron-job確かに10分くらいズレてる
昨日なんかは一応稼働するにはしてたみたいだけど
今日はまた失敗続きだ…
501nobodyさん:2009/12/11(金) 12:29:55 ID:???
>>498
まあ軽いっちゃ軽い。最低限の処理だしな。
でもphaさんとこで使ってるNet_Twitter自体もやってることはそんな大差ないから
今のサーバマシンでわかるほどの差はでんと思う。
496じゃないけど俺は自作してる。Net_Twitterも最低限のAPIしかないし。
502nobodyさん:2009/12/11(金) 14:15:56 ID:???
自分はbotの発言でTLが埋まってしまうのを考慮して(いろんなキャラbotをフォローしてるだろうし)、定期発言3時間に1回で設定してる。
cronはcron jobだけど、一度も失敗したことないし、勝手にオフになることもない。

リプライとTLに反応するプログラムは、2分おきにアクセスするようにcron jobで設定してるけど、こっちはたまに勝手にオフになる。
けどPhaさんとこのスクリプトじゃないから、多少遅れても全レスするし問題ないかなと思ってる。
503nobodyさん:2009/12/11(金) 14:31:45 ID:???
cron jobで登録日からずっと1時間に1回でリプ無の定期ツイット試運転してるけど、
今のところ60回中1回しか動いてないし勝手にオフにもなる。
もちろんBOTが手動で動くのは確認済。

cron jobってどうやったらちゃんと動くの?
Phaさんとこのスクリプトだから駄目なのかな
一応今PHP勉強して自分でも組んでるけど今ちゃんと動いてる人に聞きたい
504nobodyさん:2009/12/11(金) 16:51:50 ID:???
主な原因としては
・Cron-jobが重い
・twitterが重い
・BOTのスクリプトが重い
・BOTのスクリプトの出力サイズが大きい(大きいと送受信に時間がかかる)
・BOT鯖が重い(無料や激安な鯖は顕著)
・タイムアウトにひっかかる
505nobodyさん:2009/12/11(金) 17:07:21 ID:???
いくらなんでも60回に1回とか動かなさ過ぎだろ
スクリプトが無駄に大きくってるんじゃないか?
>>504の指摘点をもっかい見直せ
506nobodyさん:2009/12/11(金) 17:27:22 ID:???
今30分に1回定期postするプログラムと
0時、6時、12時、18時に指定した日付までのカウントダウンをpostするプログラムの2つ登録してるけど
前者は一度も失敗してないし勝手にneinになったこともない
後者だけ毎回8時(向こうの鯖が日付変わる時間)になるとneinになりやすい、あと失敗もしやすいみたい
プログラム自体はどっちもbardothodolさんとこの参考にcurlで使うやり方なんだけど…
507nobodyさん:2009/12/11(金) 19:34:47 ID:???
cronjob.de使ってる人いますか?
最多でも5分間隔しか設定できないけど勝手に止まることはないみたい
ただ、今借りてる鯖じゃ設定できなさそうでした
翻訳サイトにかけて日本語でおkな文章を解読するにサーバー直下にcronjob_*****.html(*****は指定された数字)ってファイルが必要なのかなと思ったんですが
アドレスが向こうの希望通りには設置できないんです
508DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/11(金) 19:50:35 ID:lt7fGhiK
サイトのメンテナンスでwikiの位置が変更になりました。
ttp://knowledge.ddo.jp/wiki/
に変更です。手間くって申し訳ないです。
ポータルサイトも立ち上げる予定なので、それなりに生暖かく見守ってやってください。
509nobodyさん:2009/12/11(金) 19:57:16 ID:???
うちは2分に一回、自作スクリプトを自鯖(窓)のcronNTで叩いてるけど、
getもpostも問題なさげ
Services_Twitter使用
510nobodyさん:2009/12/12(土) 01:20:53 ID:???
マルコフはやくー
511nobodyさん:2009/12/12(土) 01:31:28 ID:???
そこまで他人に頼るとどれもこれも似たようなことしか言わないBOTにしかなんないぞ。
512nobodyさん:2009/12/12(土) 10:36:34 ID:???
PHPとPECL OAuthライブラリを使ってAPIを叩いています。

APIの仕様書を見ていると、アクセストークンを設定した時に、レスポンスとしてユーザIDとスクリーン名が返ってくるとのことでした。
それらを使用したいと考えているのですが、どうにも取得が出来ません。(setTokenしたあとに、getLashResponseを呼んでみたり)

どうにかそのレスポンスを得る方法は無いのでしょうか。もしくは、そのレスポンスを取得出来るPHPで使用可能なOAuthライブラリは無いでしょうか。
513nobodyさん:2009/12/12(土) 22:01:18 ID:???
@のない呟きに反応するbotって作れるのかな
つかれたー!って人におつかれって言ってあげるようなことなんだけど
@がないとどうにもわからん・・・。
514nobodyさん:2009/12/12(土) 22:16:59 ID:???
登録した人のタイムラインを参照して同じことすればいいのでは?
515nobodyさん:2009/12/12(土) 22:36:56 ID:???
やってみた たぶんいける
でもあれなんだよね、他の人への@も読みこんじゃうと思うんだよね
516nobodyさん:2009/12/12(土) 22:50:50 ID:???
他の人への@があったら処理しないようにすればいいのでは?
517nobodyさん:2009/12/13(日) 01:34:10 ID:???
>>516
かまってくれてありがとうw
他人への@に、てかすべての@に反応しないように書いてたんだけど
\@があったら弾くようにしたはずなのにうまく回らない
細かいミスでHP削られたので今日はもう寝ます、ありがとう
518DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/13(日) 02:14:06 ID:B1fOU/ii
>>517
@ってエスケープ必須でしたっけ?(in PHP
519503:2009/12/13(日) 09:41:31 ID:???
いろいろ検証したけど鯖の問題かもしれない…

・Cron-jobが重い
 他の人は動いてるから重くは無いんだと思う
・twitterが重い
 少し前は変だったけど今は変な挙動もしてない
・BOTのスクリプトが重い
 phaさんのpost_random.phpのスクリプトそのままだから大丈夫なはず
・BOTのスクリプトの出力サイズが大きい(大きいと送受信に時間がかかる)
 最大全角35文字だから大きくないと思う
・BOT鯖が重い(無料や激安な鯖は顕著)
 @pagesだから分からない ただ手動でアクセスした時は必ず動く
・タイムアウトにひっかかる
 検証の仕方が分からない

@pagesにアクセス解析付のHTML置いて、そこで呼び出したけどCron-jobのアクセスは無かった
どこか有料だけど安いレン鯖でも借りた方がいいのかな…
オススメはロリポ?
520nobodyさん:2009/12/13(日) 09:56:28 ID:???
流れぶった切って申し訳ないけど、発言などをさせるphpファイルが
投稿出来ずにエラーになるのは何でだろう?
ブラウザ上で確認しただけなんだが、ただ一言ERRORって出るだけなんだ…
service_twitterの本体プログラム自体はエラー出てない
勿論パスワードもIDも間違ってないんだ…何でだ…orz
521nobodyさん:2009/12/13(日) 10:10:26 ID:???
どのphpファイル使ってて何をしてどういうエラーが出たのかさっぱりわからん。
522nobodyさん:2009/12/13(日) 10:12:25 ID:???
あと間違ってない、って主観の判断はどうでもいい(そう思ってて間違ってることもよくある)から
やったことや、ソースをそのまま貼ったほうが原因は特定しやすい。
523DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/13(日) 10:20:09 ID:B1fOU/ii
>>520
ソースうpきぼん
524nobodyさん:2009/12/13(日) 11:03:50 ID:???
最近よくいる糞コテはなんなの
525nobodyさん:2009/12/13(日) 11:41:51 ID:???
何もしてない奴よりなんぼか形にしてる奴のがましよ。
NG登録は簡単なんだし気になるならあぼーんしときゃいいさ。
526520:2009/12/13(日) 14:04:45 ID:???
言い捨てるような形になってしまってごめん
ソース元は銀さんのとこで、ご本人が説明されている環境をそのまま使用してる
設置サーバーもやり方も全く同じ
Twitter.phpにアクセスすると真っ白な画面にになり、ランダムに呟かせるphpファイル
(例えばbot.php)にアクセスすると、白い画面に一文字「ERROR」の文字が出る

↓ソース
527520:2009/12/13(日) 14:10:31 ID:???
ソース載せると規制に引っかかってしまうんだorz

//d.hatena.ne.jp/silverbot/20090829#c1260572663

ここのページのソース丸コピペ、フルパス、ID、パス、台詞だけ違う状態
528nobodyさん:2009/12/13(日) 15:03:18 ID:???
>520
試してないが
if(! $st->setUpdate($post) ){
die('ERROR');
辺りを消したらちゃんとしたエラー吐かないかな?
529nobodyさん:2009/12/13(日) 15:46:35 ID:???
定期postのBOTに過去10回分と同じポストかどうかを判断して
違ったらポストって機能を加えたいんだけど、ログの書き込みがうまくいかない。

log.txtをfgetsで配列aに読み込み→変数bと違うか判断→違ったら変数bポスト→
配列aの[1]〜[9]と今ポストした変数bをfor文でlog.txtにfputsしてるだけなのに。
読み込みパターンをw、a、r+どれにしたらいいんだろう?

色々試したけど追加書き込みされたりポストしたばかりのだけになったりする。
rで配列Aに読み込み→wで全消し→aで書き込みするしかないのかな?
そもそもこんな機能いらない?
530nobodyさん:2009/12/13(日) 16:33:37 ID:???
ついにできた^0^/
GoogleにでもUPするかな
531nobodyさん:2009/12/13(日) 18:15:45 ID:???
>>529
まず言語は?
532nobodyさん:2009/12/13(日) 18:34:07 ID:???
>>531
PHPです
今一応出来たけどログとの比較の部分で審査でタイムアウトする時があるから見てください

<?php
include_once 'フルパス';

//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);

$filename2 = "log.txt";
$fp2 = fopen($filename2,'r+');
flock($fp2, LOCK_EX);
for($i = 0;!feof($fp2);$i++){
$log[$i] = fgets($fp2);
}
fclose($fp2);
533nobodyさん:2009/12/13(日) 18:37:38 ID:???
//ポスト選定と審査
$key = array_rand($plist);
$ok = 2;

while($ok >= 1){
$key = array_rand($plist);
for($a = 0; $a < $i; $a++){
if($plist[$key] == $log[$a]){
$ok = 1;
}
}
if($ok <> 1){
$ok = 0;
}
}

$post = $plist[$key];

//ログ書き込み
$fp2 = fopen($filename2,'w');
flock($fp2, LOCK_EX);
fputs($fp2,$plist[$key]);
for($i = 0;$i <= 8;$i++){
fputs($fp2,$log[$i]);
}
fclose($fp2);
534nobodyさん:2009/12/13(日) 18:40:36 ID:???
Service_Twitter設定は銀さんのここと一緒
http://d.hatena.ne.jp/silverbot/20090829/1251532471

タイムアウトするのはこの部分 $plist[$key] == $log[$a]
ログはツイッター本家と同じく上が新しいものになるようにしてる
最近勉強始めたばかりなので見難いかもしれないけどお願いします
535520:2009/12/13(日) 19:44:53 ID:???
>>528
反応ありがとう!
試しに


if(! $st->setUpdate($post) ){

die('ERROR');

}
を抜いてやってみたら、ただの白いページが出た…
そんでもって投稿はされてない
あるとERRORになってないとシカトって一体どういう…???
536nobodyさん:2009/12/13(日) 23:02:07 ID:???
>>532
ログの保存の仕方はわからないけど改行コードは入れてる?
少なくとも末尾に \n 加えないとPOSTがつながって見えるぞ。書き込みモードはwでいい。

$fp2 = fopen($filename2,'w');
flock($fp2, LOCK_EX);
fputs($fp2,$plist[$key] . "\n");
for($i = 0;$i < 9;$i++){//8になってたけど9だよね?
fputs($fp2,$log[$i] . "\n");
}
fclose($fp2);


以下おせっかい

常識的に考えたら面倒なwhileじゃなくてforeach使うだろ
あとif($ok <> 1)の処理がよくわからん。
1じゃなかったら0にするんだったら最初から0にしておけばいいと思うが

$key = array_rand($plist);
$ok = 0;//最初から0にしておく

foreach($log as $logs){//$logの配列が$logsに入ってforeachループ内では$logsに配列の添え字([2]とか)がいらなくなる
if($logs == $plist[$key]){
$ok = 1
break;//同じPOSTが1つでもあったらPOSTしないと勝手に解釈
}
}

2chに書きこむ用のコードだと思うがいろいろなとこ抜けてて心配だ
537nobodyさん:2009/12/13(日) 23:35:20 ID:???
>>534
の銀さんのBOTの作り方見てたけど結構ひどいな。
Services_Twitterを今後使うと見せかけて、リプライとかは全く関係ない別のソースを使ってる。
PHP触ったばかりかもしれないから仕方ないけど。
538nobodyさん:2009/12/14(月) 00:25:34 ID:???
>537
銀さんとこのは全部他のとこの記事のコピペだよ
リプライと定時のソースはそれぞれ違う人から持ってきてるんだから
関係なくて当たり前
539nobodyさん:2009/12/14(月) 00:29:22 ID:???
>>536
すみません、書き忘れてました。
plist.txtに\nが入ってるのでfile()の処理で改行コードまで配列に入れているようです。
そのためlog.txtはちゃんと改行されて見えてました。ありがとうございます。

foreach文を知らなかったので後でググってみます。
while以下の処理は、同じ文があったらもう一度array_rand()してfor文で回して再審査、
同じ文が無かったらwhileから抜けるとしたかったのでこうしました。

初期値が$ok = 0だとwhileにすら入らず抜けてしまい、
whileの条件を$ok == 0にすると、今度は同じ文があった時にwhileから抜けてしまうため、
初期値は$ok = 2、同じ文章があれば$ok = 1にしてwhileからやりなおし、
同じ文がなかったら$ok = 0 にしてwhile抜けてポストにしました。

貼り付けたソースは定期ポストほぼ全文ママです。
foreach文なら大丈夫でしょうか?いいやり方があれば教えていただきたいです。
540nobodyさん:2009/12/14(月) 01:04:19 ID:???
>>539
タイムアウトするのはtwitterの鯖なのか、botを動かしている鯖なのか、どっちですか?
twitterだったら鯖が重いかtwitterにPOSTするスクリプト(botとしての機能じゃない方)が悪い。
botを動かしている鯖なら鯖変えるとか。


と、ここまで書いてから気づいたけど

if($plist[$key] == $log[$a])

文字列で==はちゃんとした判定はできないから

if($plist[$key] === $log[$a])

===じゃないとだめだよ。
541nobodyさん:2009/12/14(月) 08:12:41 ID:???
>>540
ごめん俺よくわかってないかもしれんが
同じ文字列型同士で == じゃ問題ある場合ってあったっけ?
542nobodyさん:2009/12/14(月) 10:38:45 ID:???
>>541
同じ文字列型でも数値型で比較される場合があるから、
文字列で比較する場合はなるべく===を使った方がいいってことじゃない?
543nobodyさん:2009/12/14(月) 11:10:23 ID:???
>>542
文字列型同士の比較なら==でも===でも値は一緒な気はしたんだけどそういうことあるの?
例えばどういう場合だろ。
544nobodyさん:2009/12/14(月) 11:55:04 ID:???
銀さんのbotを参考に製作中だけど、
cronがうまく動かない。
「zu groß」って容量大きすぎってこと?どうすればいいの?
545nobodyさん:2009/12/14(月) 12:11:03 ID:???
>>544
状況の情報が少なすぎる
kwsk
546nobodyさん:2009/12/14(月) 13:07:35 ID:???
>>544
cron-job.orgなら「zu gro?」になってても
botの動き的には正常稼働されてるはずだから気にすんな
547nobodyさん:2009/12/14(月) 15:22:27 ID:h7BWhtMh
自動フォロー返しだけやりたいんだけどbotとか初心者なんです。
どうやってやるんですか?
548nobodyさん:2009/12/14(月) 15:28:22 ID:???
BOTというかプログラム初心者?
それだとまずPHPスレとか見て基本覚えたほうがいいんじゃないかな。
549nobodyさん:2009/12/14(月) 15:49:04 ID:h7BWhtMh
>>548 そうですか・・・初心者なんですけど、やりたいのはフォロー返しだけなんで言われるようにすればできるとは思うんだけど、
そういう紹介サイト的なのがあったらいいんだけど。ってそんな簡単じゃないですよね。
PHPスレものぞいてみます。
550nobodyさん:2009/12/14(月) 16:25:45 ID:???
びっくりするほど他力本願だな。
551nobodyさん:2009/12/14(月) 16:27:31 ID:h7BWhtMh
>>550 そうなんです〜。。。昔twitterには自動フォロー機能ついててよかったけど・・・今はフォロワー管理が大変。
プログラムとか難しいことはさけてフォロー返しだけできたらいいと考えてる愚か者ですw
552nobodyさん:2009/12/14(月) 16:32:36 ID:???
>>551
そんなに面倒臭がってるならフォロー返しなんかやらなきゃいいだけのこと
553nobodyさん:2009/12/14(月) 17:10:33 ID:h7BWhtMh
>>552 いやいや、めんどくさくは無いんですよ。ただプログラムの根本からまともに勉強始めたら数ヶ月かかるでしょ!?
何ヶ月もPC画面に縛り付けられるほどの時間がないだけ。
3日程度ならいいけど。
554nobodyさん:2009/12/14(月) 17:11:57 ID:???
・・・それをめんどくさいって言うんだよ
555nobodyさん:2009/12/14(月) 17:16:59 ID:???
>>543
ググったら見つかったけど
http://logic.stepserver.jp/memo.cgi/archive/506/

とりあえず試してみたのがこれ
http://codepad.org/7VTuvTdy

上3つはちゃんと動いてるけど下3つはちゃんと動いてないね
556nobodyさん:2009/12/14(月) 17:27:12 ID:???
http://jp.php.net/manual/ja/types.comparisons.php
公式マニュアルに全部書いてある
557nobodyさん:2009/12/14(月) 17:29:44 ID:???
>>553
いいサイト教えてやるよ
http://www.google.co.jp/

このサイトで検索すればtwitterAPIの仕様から各言語の利用方法まで詳細に載ってるサイトを検索できるよ。
自動フォロー機能ってのも検索してみれば出てくるんじゃないかな?
558nobodyさん:2009/12/14(月) 17:49:50 ID:h7BWhtMh
>>555 ありがとう。この文字をコピーしてどこに貼り付けたらいいのかな?・・・
559nobodyさん:2009/12/14(月) 17:53:07 ID:???
おいお前ら、もう構ってやるなよ…真性だぜ
560nobodyさん:2009/12/14(月) 17:54:48 ID:???
>>558
おでこ
561nobodyさん:2009/12/14(月) 17:58:01 ID:h7BWhtMh
>>560 おでことは?
562nobodyさん:2009/12/14(月) 17:59:54 ID:h7BWhtMh
http://lil.la/technology/autofollow/ これ、インストールしてさっきの文字を貼り付けてみたけどダメだった・・・
563nobodyさん:2009/12/14(月) 18:01:48 ID:h7BWhtMh
あとhttp://d.hatena.ne.jp/shibason/20091018/1255866012 この人が1番まとも書いてくれてるようなんだけど、
この文字を結局どこへ貼り付けたらいいか書いてないからよく分からん。
564nobodyさん:2009/12/14(月) 18:07:01 ID:h7BWhtMh
http://www.tweetmanager.com/ ←これにも登録してオートフォローとかを有効にしたつもりではいるんだけど、変化なしです。 
565nobodyさん:2009/12/14(月) 18:09:35 ID:???
初心者の人は銀さんのbotを参考にするといいと思う。

昨日からbot作りはじめたけど
postさせるところまではできたよ。


>>546ありがとう。気にしないことにして次の手順頑張る。
566nobodyさん:2009/12/14(月) 18:16:20 ID:???
がんばれ><
567nobodyさん:2009/12/14(月) 18:17:31 ID:h7BWhtMh
銀さんのbotはどこから読めば?一番初めはただのガタガタの文字しかのってないし・・・
568nobodyさん:2009/12/14(月) 18:18:25 ID:h7BWhtMh
http://www.tweetmanager.com/ ←ってかこれって違うの?
569nobodyさん:2009/12/14(月) 18:25:19 ID:???
もう死ねよ
570nobodyさん:2009/12/14(月) 18:27:26 ID:???
http://d.hatena.ne.jp/silverbot/20090809/1249807557

↑銀次さんのやつ。
リンク貼るくらいしかできないけど頑張れー!
サーバの用意とかpostさせる手順1とか、トラックバックのとこに色々あるから。
571nobodyさん:2009/12/14(月) 18:30:34 ID:???
>>569
da ma re
572nobodyさん:2009/12/14(月) 18:30:54 ID:???
あ、やりたいのはフォロー返しなのか・・・
お役に立てなかったかも。。ごめん
573nobodyさん:2009/12/14(月) 18:55:50 ID:h7BWhtMh
いえいえ、教えてくれた方ありがとう!!ゆっくり銀さんのを読んでみますね。参考になります。
574nobodyさん:2009/12/14(月) 19:05:13 ID:???
PHPでキャラbotのソース書いてるんだが、いまいち分からないところが出てきた

リプライで「A」に反応して「Bをつくりますか?」とか「B入りますか?」 みたいに返したい
つまり「BC」という2つの変わる部分が欲しいといえばいいのだろうか
B=食べ物名
C=つくりますか?、入りますか? のような文
というふうにしたい
今のところのソースが下の状態
//前略////
$mesi=array("ごはん",
"パン",);
//中略/////
if(preg_match("/はらぺ|はらへ|腹減/u",$com) > 0){
$key = array_rand($mesi);
$post = $mesi[$key];
$return =$reply_name." おなかすいたんですか? じゃ、".$post."はどうですか?";
}
//後略////

もうどこをどういじればいいのかわからなくなってきた/(^o^)\
$return =〜以降を増やせばいいのかもしれないが、どうやって追加すればいいのか分からないんだ
だれか助けてくれ
575nobodyさん:2009/12/14(月) 19:18:30 ID:???
>>574
はい。
returnは予約語なはずだから使わないようにね


<?php
$reply_name = "@screen_name ";

//前略////

$mesi=array("ごはん","パン");

//中略/////

$com = "はらへった";

if(preg_match("/(はらぺ|はらへ|腹減)/u",$com,$m) > 0){
$key = array_rand($mesi);
$post = $mesi[$key];
$returns =$reply_name . " おなかすいたんですか? じゃ、" . $post . "はどうですか?<br>";
echo $returns;
}


?>
576nobodyさん:2009/12/14(月) 19:34:18 ID:???
UZEEEEEEEEEEEEEEEEE
577529:2009/12/14(月) 20:21:19 ID:???
>>540
ありがとうございます!とりあえず===にしました

エラーはFatal error: Maximum execution time of 8 seconds exceeded in…というエラーが時々出ます。
鯖とツイッターどちらでタイムアウトしているかは分かりません。
とりあえず今set_time_limitで指定しましたが今は結果待ちです。

cron-jobが全く動いてくれないのもこのせいでしょうか?
今日の昼に毎日毎時0分に叩くよう設定しましたが1回も動いてくれません…。
@pagesとcron-jobで動いている人は沢山いるようなのでコツがあるのでしょうか?
Aktiv?はちゃんとjaにしています。
578529:2009/12/14(月) 20:28:28 ID:???
577訂正
@pagesではset_time_limitが使えませんでした…
579543:2009/12/14(月) 21:33:06 ID:???
>>555
うーん。変数の型が違うと暗黙の型変換が行われるから===を使うべきってのはわかってるんだ。
また同じことを言っちゃうけど、「同じ型の場合」に == と === で何が違うの?て話なんだ。

もちろん、値が保障されない場合も考えて===を使う「べき」ってのはわかるし
コーディングするときはもちろんそうするだろうけど
型が同一の場合にも==だとなんか問題あるのかなって確認したかったんだ。
特になさげかな。
580DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/14(月) 22:07:50 ID:???
経験上言わせていただきますが、`の処理には気をつけてくださいね…冷や汗をかきました。

今現在@windymeltanにmaximaプラグインを積んでいます。数式処理のテスト中です。
@windymeltan maxima:2+4;
のように書いてテストしていただいて結構です。
乱筆しました。失礼。
581nobodyさん:2009/12/14(月) 22:59:49 ID:???
うん、はしょりすぎて何を言いたいのかわからない。
582nobodyさん:2009/12/15(火) 00:07:48 ID:???
>>577
毎時0分はたくさんの方が設定していると思われます。
処理内容にもよりますが、ジャストタイムが不要ならば13分とか、48分とかの
中途半端な時間に設定した方が良いかもしれませんね。
1分とかだとサーバーがまだ0分のヤツを処理してたりしてw
583DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/15(火) 00:43:48 ID:???
>>581
PHPのバッククォートはきちんとエスケープしませう。というお話でした。
584nobodyさん:2009/12/15(火) 08:40:01 ID:???
>>1

twitter
なぜナウやnawではなく「なう」なのか

http://d.hatena.ne.jp/RRD/20090727/1248682147

585nobodyさん:2009/12/15(火) 09:44:33 ID:???
>>584
マルチ乙
586nobodyさん:2009/12/15(火) 10:00:25 ID:???
>>584
なんでアチコチに貼ってんの?
記事の内容も、典型的な同属嫌悪だし。
587nobodyさん:2009/12/15(火) 11:12:56 ID:???
ネガキャンしたきゃ愚痴スレででもやるべきだな。
588nobodyさん:2009/12/15(火) 14:13:06 ID:???
CRONが叩きに来てないのか、叩きに来たけどタイムアウトしたのかどうやったら分かる?
PHP呼び出すHTML作ってアクセス解析付けたけど何もログが残ってない
589nobodyさん:2009/12/15(火) 14:15:37 ID:???
>>588
CRONサーバー側のログを見る。
590nobodyさん:2009/12/15(火) 14:31:21 ID:???
phaさんのスクリプトでランダムポストしてるんだけど、
10ツイート/day程度の頻度で、ポスト候補のテキストパターンは100近く仕込んであるのに
やたら同じのばかり選ばれるみたいで、ポストが飛んでしまうことがよくある。
cronも安定してるし他の挙動には問題ないので、この状態がすごく気になる…
どうにか回避する方法はないでしょうか。
591nobodyさん:2009/12/15(火) 15:41:37 ID:???
ランダムで選ばれたテキストパターンが
自分の発言最新10件と一致しなければpostする様にするとか
592nobodyさん:2009/12/15(火) 15:49:39 ID:???
GAEでCRONの某記事の人がPC上で動かすCRON?みたいなの作ったみたいだな
593nobodyさん:2009/12/15(火) 16:21:43 ID:???
>>589
cron-jobにそんなログ見れるページあったっけ?
594nobodyさん:2009/12/15(火) 16:22:37 ID:???
>>593
ない
595nobodyさん:2009/12/15(火) 16:23:26 ID:???
>>591
529が作ってたから入れてみたけどタイムアウトになって駄目
596nobodyさん:2009/12/15(火) 16:24:36 ID:???
>>594
だったら八方塞がりだな…
他の人は動かない原因どうやって突き止めてるんだ
597nobodyさん:2009/12/15(火) 18:10:54 ID:???
>>595
//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);
$results = 0;//重複判定用

//キーに該当するポストとログが同じか調べる
foreach($log as $logs){
if($logs === $plist[$key]){//ログと重複した場合
$results=1;//重複している
break;//重複しているのでforeachから抜ける
}
}

if($results==0){//$resultsが0すなわち過去10件と重複してない場合
$post=$plist[$key];//ポストする文にする
}

これでどうだ
598nobodyさん:2009/12/15(火) 18:37:19 ID:???
芸能人の非公式botってどうなんだろう
599nobodyさん:2009/12/15(火) 19:31:57 ID:???
>>598
それいったら、キャラクターの非公式botだって…
600nobodyさん:2009/12/15(火) 19:35:48 ID:???
>>599
全然違うだろ…
601nobodyさん:2009/12/15(火) 20:07:07 ID:???
>>597
被ってたらポストしないじゃなくて
>>529>>539で言ってたみたいにもう一度array_randしないと
結局ポストせず終わるから駄目じゃないか?

それするとタイムアウトするみたいだけど
602nobodyさん:2009/12/15(火) 20:15:04 ID:???
・ポストリストとログ読み込み
・ポストリストからランダムにポストする文を選ぶ
・ログと被ってないか判断
・被ってたら選び直し
・最新ポスト追加した最新10ポストのログ再作成
・ポスト

>>529はこれだけ入れたソース作ったみたいだけど
確かに判定入れるならこれだけやらないと意味ないんだよね…

別プログラムでリプライとか入れてるならそっちも含めたログにすると理想的
603nobodyさん:2009/12/15(火) 20:33:24 ID:???
選び直しを入れてるからタイムアウトになるんだろ
604nobodyさん:2009/12/15(火) 20:43:17 ID:???
選び直し入れないと判定そのものの存在意義がなくなる
ちゃんとポストするために入れてるんじゃないの?
結局ポスト出来ないなら判定もログ保存もツイッターがしてくれるからいらないよ
605nobodyさん:2009/12/15(火) 23:59:15 ID:???
cron-jobが動いてくれないよ〜;0;
botがまったく無反応になってしまった・・・
606DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/16(水) 00:14:04 ID:CexvtTFs
maximaと連携させるプラグイン作りましたが誰も使わないですよね…¬
http://knowledge.ddo.jp/info/index.php?option=com_content&view=article&id=51:maximaplugin&catid=35:2009-12-12-10-21-55
607nobodyさん:2009/12/16(水) 00:59:49 ID:???
>>601
//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);

//キーに該当するポストとログが同じか調べる
foreach($log as $logs){
if($logs === $plist[$key]){//ログと重複した場合
$key=array_rand($plist);//もう一度探す
continue;//foreachに戻る
}
}

$post=$plist[$key];//ポストする文にする


こうか
608nobodyさん:2009/12/16(水) 01:08:08 ID:???
foreach($log as $logs){
これは・・・ゴクリ
609nobodyさん:2009/12/16(水) 01:11:00 ID:???
ちなみにそれ重複が判明した以降の$logsしか判定しないぞ
610nobodyさん:2009/12/16(水) 01:34:58 ID:???
>>609
ばれなきゃいいと思ってたけど指摘されたか。

//ポストリストとログ読み込み
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

//キー生成
$key=array_rand($plist);
$i=0

//キーに該当するポストとログが同じか調べる
while($i<10){
if($log[$i] === $plist[$key]){//ログと重複した場合
$key=array_rand($plist);//もう一度探す
$i = 0;//$logのキーを元に戻す
continue;//whileに戻る
}
$i++;//$logのキーを1つ進める
}

$post=$plist[$key];//ポストする文にする

何度もすまん。けっきょくwhileに戻ったな。
@pagesみたいな鯖じゃなくてもっといい鯖使えばいいのにとか思ったり。
611nobodyさん:2009/12/16(水) 01:54:02 ID:???
俺だったら
$filename = "plist.txt";
$plist = file($filename);
$filename2 = "log.txt";
$log = file($filename2);

$key = array_rand($plist);
$log_slice = array_slice($log, 0, 10);

while (in_array($plist[$key], $log_slice)) {
$key = array_rand($plist);
}

$post = $plist[$key];

//do〜whileでもいいけど
612nobodyさん:2009/12/16(水) 10:29:53 ID:???
foreach($log as $logs){
↑これって配列をつくって並べてる、であってる?
まずいの?
phaさんのこれじゃね?
613nobodyさん:2009/12/16(水) 10:44:25 ID:???
こうじゃね?
あと改行削るべきだし、できたらファイル読み込みとかにエラーチェック入れたいが。

$filename = "plist.txt";
$filename2 = "log.txt";

$plist = @file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$log = @file($filename2, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$plist_uniq = array_diff($plist, array_slice($log, 0, 10)); //重複しない候補

$post = $plist_uniq[array_rand($plist_uniq)];


614nobodyさん:2009/12/16(水) 10:45:55 ID:???
あ、テスト用に追加してた@はなくてもいいやむしろ取ったほうがいい。
エラー出さなくするものだから。
615nobodyさん:2009/12/16(水) 11:02:27 ID:???
ログが常に最新10件である事前提だな…
xmlで取って来れないものか
そうしたら最新10件のログを作成する部分だけはいらなくなる
616nobodyさん:2009/12/16(水) 11:06:29 ID:???
え?どういうこと?
617nobodyさん:2009/12/16(水) 11:13:08 ID:???
あー他の部分見てなかったけどこれAPIからのログは読んでないわけか。
まあいんじゃね。
ていうかxmlでもjsonでもAPI叩けば拾ってこれるし。
618nobodyさん:2009/12/16(水) 11:35:25 ID:GKFzjgHo
タロット占いできるキャラbotを作りたいんですが、
botというかPHP初心者で取っ掛かりが分かりません。
スクリプトがあまり重くなると困るので、
タロットの結果を書いたxmlを作って「占って」とリプライされたら
そのつどタロットのxmlを読み込んで結果をランダムに出力するとか可能ですか?
それともみなさん、
$tarot=array("",""......);
とかでやってるんでしょうか・・・?
619nobodyさん:2009/12/16(水) 12:20:23 ID:???
>>613
ログ生成を追記モードでやってる場合は下の方が最新ログになるから
ログ読み取りの部分と被ってない部分の抽出はこうじゃ駄目かな

//ログ読み取りの部分
$filename2 = "log.txt";
$fp2 = fopen($filename2,'r+');
flock($fp2, LOCK_EX);
for($i = 0;!feof($fp2);$i++){
  $log[$i] = fgets($fp2);
}
fclose($fp2);

//被ってない部分の抽出
$plist_uniq = array_diff($plist, array_slice($log, $i-10, $i));

上から10個が最新ってログ作成の時にやりにくいしタイムアウトの一因になると思う。
ただfgetsの時はどうやって空行と改行文字飛ばせばいいか分からないし
array_slice使ったこと無いから位置指定に変数が使えるかどうか試してない。

配列の最後のキーを簡単に取得できる方法があったらごめん
620nobodyさん:2009/12/16(水) 14:11:14 ID:???
>>619
そこで行数カウントしなくても
$plist_uniq = array_diff($plist, reverse(array_slice($log,0,10)) );
reverseで逆転すればいいだけだし
要素数カウントするなら別に $i = count($log) ;みたいなこともできる。
621nobodyさん:2009/12/16(水) 14:14:05 ID:???
あー、こっちのが楽か。
$plist_uniq = array_diff($plist, array_slice($log,-10) );
622nobodyさん:2009/12/16(水) 23:19:30 ID:j0jV78ZZ
623nobodyさん:2009/12/17(木) 01:12:23 ID:???
ただの宣伝じゃねーか。
624nobodyさん:2009/12/17(木) 21:45:44 ID:???
自動フォロー返しのときにDM送ろうとしてるんだが
そのDMのメッセージ内容に相手のname(screen_nameじゃない方)を使いたいときどうすればいい?
625nobodyさん:2009/12/17(木) 22:32:36 ID:???
TL取得すると一緒についてくると思うけど
626nobodyさん:2009/12/18(金) 00:57:26 ID:???
そのものnameって値で入ってるっしょ。
627nobodyさん:2009/12/18(金) 19:37:19 ID:???
フォローにTLは取得しない
フォローイングとフォロワーのAPIでname取得できなくね?
628nobodyさん:2009/12/18(金) 19:42:38 ID:???
取得すればいいのでわ?
629nobodyさん:2009/12/18(金) 20:11:26 ID:???
TL上で俄かにOAuthで認証するのが流行り出した。
クライアント名を変えられるのが人気らしいですね。
使ってますか?
私はまだベーシック認証ですが。
630nobodyさん:2009/12/18(金) 21:22:41 ID:???
すみませんだれか知恵をお貸しください。
phaさんのプログラミングを利用させてもらっています。
本日botのパスワードを変更したらその後まったくbotがうごかなくなってしまいました。
普通投稿とリプライ投稿ともまったく別のエラーになります。

普通投稿の方は パスワードかユーザー名が違うとのことですが、
普通にこのIDとパスでtwitterにログインできるので間違っているはずがありません。
どこか別の記述が間違っているのかと別IDでpostしてみましたが通常通り動きました。
何故か一体のbotだけうまくいかない状況です。

もう一点、同botなのですがリプライの方は
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in /usr/local/www/htdocs/○○/public_html/Services/Twitter/Jsphon/Error.php on line 185
と出、185行目にエラーがあるそうですが、185行目は
$message = convert_text($message);
で何が問題あるのかさっぱりわかりません。
他の正常に動いているbotのソースを丸々コピーしてみましたが同じエラーになります。

自分ではこれ以上の原因究明ができませんでした。
twitterのアカウントに問題がある気がするのですが、
twitterのhome画面ではちゃんと書き込みができるのようでもう何が何やらさっぱりです。
申し訳ございませんが誰かご教授いただけると嬉しいです。
631630:2009/12/18(金) 21:30:49 ID:???
すみません630です。
何故か今、回復してしまいました
サーバーの調子が悪かったのでしょうか・・・
スレ汚してしまい本当にすみません
632nobodyさん:2009/12/18(金) 22:56:43 ID:???
>>631
そういう時はできるだけ詳細を書いておけば後続者の役に立つと思うからまだ見ていたら覚えといてくれ。
633nobodyさん:2009/12/18(金) 23:08:00 ID:???
自分もphaさんのを利用させてもらってるんだけど、
返すリプライによって画像を変えたい場合ってどうしたらいいんですかね?
他の方のプログラムだとみつけたんだけどphaさんのって発言はテキストファイルで他の人とちょっと勝手が違うからよくわからないです…
634nobodyさん:2009/12/19(土) 00:14:49 ID:???
phpを勉強して折衷したプログラムを作ればいい
635nobodyさん:2009/12/19(土) 00:32:47 ID:???
フォローしてない人の発言を特定のキーワードで検索、取得するにはどうすれば良いのでしょうか…
636nobodyさん:2009/12/19(土) 01:02:08 ID:???
http://search.twitter.com/
http://pcod.no-ip.org/yats/
http://buzztter.com/

このあたりがRSS吐いてるから適当に解析するよろし。
637nobodyさん:2009/12/19(土) 02:33:57 ID:???
>>636
Thanx a lot!
638nobodyさん:2009/12/19(土) 07:18:16 ID:???
>>629
ベーシック認証が廃止になるから
http://twitter.com/tweeterjp/status/6522684422
639nobodyさん:2009/12/19(土) 11:42:19 ID:???
>>638
ついーたーが言ってるだけじゃなあ。
URLもRT用の無駄URLだしソース元ないん?
640nobodyさん:2009/12/19(土) 14:52:54 ID:???
641nobodyさん:2009/12/19(土) 17:58:05 ID:???
corn-job.orgの動作が不安定なため、GAEでcronを動かしたいと思っています
自分なりに色いろやってみたのですが、どうしてもうまくいかないので相談させてください。
ttp://d89.s41.xrea.com/twitter/howtomake_bot.html
こちらをを参考に、cron.yaml/app/yaml/task.pyを作成し
GAE launcherで読み込んだのですが、Runさせようとすると数秒でエラーのアイコンが出て先に進めません
ログはこんな感じになっています。URLがダメなんでしょうか…

Running command: "['C:\\Python25\\python.exe', 'C:\\Program Files\\google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8089', 'C:\\bot']"
ERROR 2009-12-19 08:32:38,951 dev_appserver_main.py:363] Fatal error when loading application configuration:
Invalid object:
Unknown url handler type.
<URLMap
static_dir=None
secure=default
script=None
url=/.*
static_files=None
upload=None
mime_type=None
login=optional
require_matching_file=None
auth_fail_action=redirect
expiration=None
>
in "C:\bot\app.yaml", line 8, column 1
2009-12-19 17:32:39 (Process exited with code 1)
642nobodyさん:2009/12/19(土) 18:26:07 ID:???
>>641
まず、ml115を買ってくる

643nobodyさん:2009/12/19(土) 18:42:27 ID:???
>>642
自分で鯖を立てることができるならこんなことで悩んだりしません
意地悪ですね
644nobodyさん:2009/12/19(土) 19:51:19 ID:???
できるようになればいいじゃん
645nobodyさん:2009/12/19(土) 19:52:17 ID:???
鯖立てしなくても24時間PCつけっぱなしにしてブラウザ自動リロードにしておけばいいだけ
646nobodyさん:2009/12/19(土) 19:56:18 ID:???
リロードなんかしなくてもJavaScriptじゃだめなのか
647nobodyさん:2009/12/19(土) 19:57:39 ID:???
>>643
まぁ、やってみなよ、おもしろいから。
DDNSとかで
セキュリティ??知らんがな(´・ω・`)

メールとかいろいろ遊べるし
648nobodyさん:2009/12/20(日) 16:24:25 ID:???
>>641
同じようなとこで躓いた経験があります。yamlファイルの記述に問題があったようです。
そこのサイトで紹介しているyamlファイルのテキストをブラウザからコピペしたもの
ではなく、そのサイトからリンクされているページで紹介されている
ソースコードをコピペしてやってみると幸せになれるかもしれません。
違っていましたらあしからず。
649nobodyさん:2009/12/20(日) 20:43:29 ID:???
>>648
おおおおお仰る通りにしてみたら成功しました!幸せになれました
本当にありがとうございました
650nobodyさん:2009/12/20(日) 23:25:31 ID:???
ベーシック認証が廃止になったら、phaさんのスクリプトとかも動かなくなんの
651nobodyさん:2009/12/21(月) 00:24:06 ID:???
>>650
OAuthに対応しなきゃ動かなくなるわな
652nobodyさん:2009/12/21(月) 00:32:05 ID:???
OAuthはまだいいよ。
できなくなったら対策考えればいい。

ググればいくらでも出てくるからな。
ググらないのは甘え
653nobodyさん:2009/12/21(月) 00:51:02 ID:???
OAuth導入できたんだけどAPIが上手く使いこなせない
慣れるの大変だなまた

これで他人のソース丸コピペBot量産厨が減るといいけどwww
654nobodyさん:2009/12/21(月) 00:53:31 ID:???
PHPでOAuth使おうと思ったがサンプルはcurlしか使えないんだな。
もっとましな方法はないのか…
655nobodyさん:2009/12/21(月) 00:58:00 ID:???
ラッパーの自作ライブラリはさんでるから対応さえしときゃなんとでもなりそうだ。
656nobodyさん:2009/12/21(月) 10:45:51 ID:???
ていうか今までもcurl使ってたと思ったがましな方法って例えば何だ。
657nobodyさん:2009/12/21(月) 12:58:32 ID:???
phaさんので使われてる日本語版Services_Twitterはcurl使ってない
http://d.hatena.ne.jp/sotarok/20080807/1218114681
658nobodyさん:2009/12/21(月) 14:12:31 ID:???
そこのURLでも言ってるがcurlそんなダメか?
659nobodyさん:2009/12/21(月) 21:17:30 ID:???
curlは認知度が低い
わざわざ使わなくてもHttp_Requestがある
curlの仕様自体が変態
660nobodyさん:2009/12/21(月) 22:25:00 ID:???
curlを使ってたとこはHttp_Requestが何故か使えないから仕方なく使ってたみたいだが
661nobodyさん:2009/12/22(火) 04:53:06 ID:???
>>659
fsockopenなんて遅いしそれだったらcurlでいいやと思ってる
662nobodyさん:2009/12/23(水) 02:57:59 ID:???
流れを読まずにcronの代わりを考えてみたんだけど、htmlの自動更新のタグ使って代わりにできないかな?
htmlのページにフレームかなんかでphp埋め込んで、そのページを延々更新し続けるとcron使わなくても動くんじゃない?
自分はめんどくさくてそんなことせずにcronくんでるんだけど誰かcronわからなくてhtmlの知識持ってる人は試してみてほしい
24時間ずっとブラウザ立ち上げてなきゃいけないけど

うーん、やっぱり駄目かな。アホなこと考えてごめん
663nobodyさん:2009/12/23(水) 03:35:15 ID:???
別にいいんじゃない?
自分が起きる時間にBOTは起きて自分が寝る時間にBOTは寝る感じで
664nobodyさん:2009/12/23(水) 11:48:56 ID:???
>>662
考えたことあった
ただ>>663が言うように常にPCを上げておかなきゃいけないからね
それが問題にならないbotなら出来ると思うよ
665nobodyさん:2009/12/23(水) 11:58:43 ID:???
windowsならタスクでなんでだめなの?
666nobodyさん:2009/12/23(水) 11:59:24 ID:???
てかMETAタグで自動更新するくらいならJavaScript使えばいいのでは?
667nobodyさん:2009/12/23(水) 12:32:05 ID:???
>>666
前提が「cronは分からないけどhtmlならできる」だから
htmlのが敷居低いんでないの?
668nobodyさん:2009/12/23(水) 14:35:27 ID:???
タグ一行で済むのをわざわざJavaScriptで書く必要はないわな。
669nobodyさん:2009/12/23(水) 16:50:10 ID:???
htmlやJavaScriptでわざわざ書かなくてもOperaに自動更新ツールついてるし
670nobodyさん:2009/12/23(水) 21:40:03 ID:???
ブラウザに依存してる方がめんどくさいだろ。
671nobodyさん:2009/12/24(木) 14:59:33 ID:???
http://twittbot.net/

このボットジェネレーターが結構使えると思うんだがどう?
672nobodyさん:2009/12/24(木) 16:16:13 ID:???
その手のは突然サービス終了したらと思うと怖くて使えない
673nobodyさん:2009/12/24(木) 16:32:20 ID:???
別に終了してもいいじゃん。
どうせtwitterなんて流行り物だし、使い続けるようなものでもないでしょ
674nobodyさん:2009/12/24(木) 23:28:41 ID:???
すいません、流れを読まずに質問。
reply_pattern.phpの中身の反応させる言葉なんですけど、
複数の単語がある場合に反応する方法はありますか?
たとえば、「ごちそうさま。おいしかった」と@貰ったら
「お粗末さま。おいしくて何より」といった返答をするように、
「ごちそうさま」と「おいしい」の2つの単語がある場合に、
用意した言葉を返答するという感じ。

「ごちそうさま」だけに反応させるものもあるので、二つの言葉がある
場合に、反応する正規表現を教えて下さい。
675nobodyさん:2009/12/24(木) 23:29:34 ID:???
676nobodyさん:2009/12/24(木) 23:43:40 ID:???
>>675
 明日(ぼく|わたし)は帰宅します
これか!これだな!ありがとう!!助かった。感謝します。
677674:2009/12/24(木) 23:59:04 ID:???
あれ、どうやら違うようでした…。自分の頭はサル以下なのか
678nobodyさん:2009/12/25(金) 01:06:33 ID:???
ごちそうさま.*おいしかった

だけでいんじゃね
679nobodyさん:2009/12/25(金) 01:08:50 ID:???
おいしかった。ごちそうさま。
だったら?
680674:2009/12/25(金) 02:20:44 ID:???
>>678
それだと「ごちそうさま」だけの@に反応しなくなる
また、 おいしかった.*ごちそうさま
だと、「おいしかった」に反応してしまうんだ…

>>679
「おいしかったーーー!うまい!ごちそうさま!」とか
「ごちそうさま!パスタおいしかった」にも反応させたいんだ

「おいしかった。ごちそうさま。」ってきっちり@もらって
反応させるしか方法はないのかな…
681nobodyさん:2009/12/25(金) 02:24:57 ID:???
2つif使えば?
682nobodyさん:2009/12/25(金) 02:38:50 ID:???
「おいしい」じゃ「おいしかった」は引っかからないのでは?
683674:2009/12/25(金) 02:53:24 ID:???
>>681
if?初心者なものですまんがわかるように解説してくれ…
ちなみに「プログラミングができなくても作れるTwitter botの作り方」を
参考にしてphpいじってる。 ttp://pha22.net/text/twitterbot.html
タグはこんなかんじで

"リア充(は)?爆発しろ"=> array(
"「爆発しない」",
"「爆発する」",
),

>>682
ああ!微妙に単語を変えればいいのか…? なるほど
2つの単語同時指定っていうのが無ければ、そうする。ありがとう
684nobodyさん:2009/12/25(金) 03:13:29 ID:???
プログラム分からないでやる意味が分からん。分かるようになれよ
685nobodyさん:2009/12/25(金) 03:20:06 ID:???
ていうか正規表現のURL貼ってくれてんだからそれ読もうよ。
すごい基本的なこと聞いてるからそれもわかんないんじゃ今後似たような質問だらけになるぞ。
686nobodyさん:2009/12/25(金) 08:40:21 ID:???
phaさんのスクリプト使わせてもらってるが
反応する単語増やしたらタイムアウトしやすくなってきた
.*を多用しすぎたのが良くなかったのか?

ファイルサイズを小さくできる(タイムアウトしにくい)表記とか
あったら教えて欲しい
687nobodyさん:2009/12/25(金) 10:26:04 ID:???
>>674
「ごちそうさま」だけでいいならそれだけ書いておけば「おいしかった」があってもなくても引っかかる
「おいしかった」の有無で反応を変えたいなら分けて書けばいい
PHP云々以前の問題だと思うよ
688nobodyさん:2009/12/25(金) 14:08:55 ID:???
質問の時のテンプレあるといいのかね?
689nobodyさん:2009/12/25(金) 20:40:14 ID:yLGH+OzA
phpでbot作ってて、APIのmentions.xmlを取得してるんだけど
curlで取得してsimplexml_load_stringで読むことはわかるけど
このままforeachでループすると同じものを何回も繰り返して
二重にも三重にも実行されることになってしまうがどうしたらそれを回避できる?
690nobodyさん:2009/12/25(金) 21:03:01 ID:???
意味が分からん。ループすべき処理にはforeachをかけて、すべきでない処理にはかけなければいいのでは?
691689:2009/12/25(金) 21:18:19 ID:yLGH+OzA
>>690
いや、そこんとこの処理をどうするか考えてる
ループを実行するたびにファイルにでもidを記録して
ループを回す度にチェックして重複してたら実行しないようにすればいいんだろうけど
それだとすごく時間かかる
692nobodyさん:2009/12/25(金) 21:24:49 ID:???
ランダム発言でもしてて発言が重複しないようにしたいわけ?
それなら上のほうで同じような話が出てるよ
693689:2009/12/25(金) 21:55:28 ID:yLGH+OzA
>>692
そうじゃない、xmlから拾うときに前拾ったのを拾わないようにするにはどうしたらいい?
694nobodyさん:2009/12/25(金) 22:01:38 ID:???
>>693
なんらかの方法でマークしておけよ。
xml取得時に日時で絞っておくとか、IDを記録しておくとか、、、
695689:2009/12/25(金) 22:07:51 ID:yLGH+OzA
>>694
日時で絞るなんて機能あった?
IDを記録しておく方法だと
ファイルに記録すると読み込み時間かかるし、ファイルの中身を消すタイミングもめんどくさいし
データベースでも同じ
696689:2009/12/25(金) 22:16:08 ID:yLGH+OzA
ああ、取得した最新のidをファイルに記録しといて今度取得するときsince_idパラメータを指定すればいいのか
697nobodyさん:2009/12/25(金) 22:42:30 ID:???
>>696
日時でもなんでもやり方はあるぞ
言っちゃ悪いがそれくらい分かれ

あとsageろ
698nobodyさん:2009/12/26(土) 00:09:15 ID:???
なんか無駄に長くて要点わかりにくいんだけど
要するに重複しないステータスを取得したいってことでいいんかね。
まあ>>696でいいんだろうけどAPI叩いて連続で取得したんなら
ステータスIDをキーにした配列に格納しなおして重複避けたり
読み終わったIDを保存しといてそれは除外するなり手はあると思うが。
699nobodyさん:2009/12/26(土) 00:30:52 ID:???
どうせ2分とかの間隔で取得するんだから、
00:26:01に起動 → 00:24:00〜00:25:59のステータスが有効
00:28:02に起動 → 00:26:00〜00:27:59のステータスが有効
という感じでやってる。
mentions取得できなかったら?そんなの無視。
700nobodyさん:2009/12/26(土) 00:36:35 ID:???
時間で指定できるのもあったよね確か
701nobodyさん:2009/12/26(土) 02:55:24 ID:???
sinceは廃止される引数だったと思う。
since_id max_id を使って欲しいんだろう。
702nobodyさん:2009/12/26(土) 14:39:10 ID:???
BOTで投稿したときに「APIから」と表示されてしまうのですが、
これを偽装する手段ってありませんか?
703nobodyさん:2009/12/26(土) 14:40:46 ID:???
OAuth認証にすれば自由にできる
704nobodyさん:2009/12/26(土) 14:49:04 ID:???
>703
ありがとうございます。
調べてみます
705nobodyさん:2009/12/27(日) 05:06:54 ID:???
GAEのcron.xmlで、「毎日○時〜○時の間のみ○分間隔で実行する」という設定は可能ですか?
<schedule>の書式とにらめっこしたけど調べた範囲では分からなかった…
706nobodyさん:2009/12/27(日) 08:49:06 ID:???
>>705
○分間隔にしといてBOT側で時間の対応をする
707nobodyさん:2009/12/27(日) 11:31:22 ID:???
>>705 その後、どうですか?
708nobodyさん:2009/12/27(日) 23:04:05 ID:???
FileQっていう月99円のレン鯖はcron無制限だよ。実際に自分のbotで試したらちゃんと動いた。
709nobodyさん:2009/12/28(月) 05:11:09 ID:???
皆さんbotのプログラミング言語は何を使っているんですか?
710nobodyさん:2009/12/28(月) 07:37:01 ID:???
過去ログ読め



BOTの為だけに鯖借りるのはなんかなーとは思う
711nobodyさん:2009/12/28(月) 08:14:48 ID:???
無料鯖借りればいいじゃん
712nobodyさん:2009/12/28(月) 11:10:23 ID:???
自鯖立てればいいじゃん。
713nobodyさん:2009/12/28(月) 11:34:53 ID:???
自分で書き込めばいいじゃん。
714nobodyさん:2009/12/28(月) 12:16:36 ID:???
cron使える無料サーバーなんてあるのか?
FileQが多分一番安いし一分間隔でcron使えるし
715nobodyさん:2009/12/28(月) 12:28:27 ID:???
>>713
それボットじゃねーwww

FileQ試してみたけどスゲーな
安定して1分間隔でcron動く
1年1180円だしこれでいいんじゃね?
716nobodyさん:2009/12/28(月) 19:59:23 ID:???
rep2置いたらジエンにつかえるじゃん
717nobodyさん:2009/12/28(月) 21:38:58 ID:???
名詞や動詞を組み合わせて発言するボットを作ってる人多いけど、文意がおかしな事になってるじゃん。
もっとちゃんと作ったらいいじゃん。
718nobodyさん:2009/12/28(月) 22:10:42 ID:???
>>715
FileQは操作に慣れるのに時間がかかる。
慣れるまでが問題かな。
719nobodyさん:2009/12/29(火) 01:24:34 ID:???
tp://d.hatena.ne.jp/bardothodol/20090930#p1
ここを参考にTL上の単語に反応させてるんですが、サーバーを@PAGESからFileQに移動したら
Fatal error: Call to undefined function curl_init() in /home/〜〜〜.php on line 27
というエラーが出るんですが、これってこのサーバーではcurlが使えないってことですよね?
curlを使わない方法でTL上の単語に反応させる方法とかありますか?
それともcurlが使えるサーバーを探すべきか…
720nobodyさん:2009/12/29(火) 01:34:48 ID:???
>>717
マルコフ連鎖とかいうのを実装して作るんだけど、あくまで「文と文のつながり」を記憶できるだけであって、文意の解析までは辿りつけてないよ。
発言ごとに辞書引いて意味を覚えるとか面白いとは思うけど、労力が足りないんじゃないかな。
721nobodyさん:2009/12/29(火) 03:33:58 ID:???
cronはwindowsでもできたはず・・・
ttp://www.bitfolge.de/pseudocron-en.html
722nobodyさん:2009/12/29(火) 05:41:41 ID:???
>>717
>>720だし、マルコフじゃなく自分である程度の文章のつながりを作るのもできんこともないけど
すげーめんどくさいか、すげー少ないバリエーションになってしまう。
あれはああいうカオスな発言を楽しむもんだと思ってる。

伺かみたいな文章として成り立ってるのを作るにはあれみたいに
一文ごとにデータ作ってやんないといけないしな。
チャットのbotでそういうの作ろうとしたけど飽きて投げた。
品詞の分類だけじゃなく活用まで考えて作るのすげーめんどせーよ。
723nobodyさん:2009/12/29(火) 15:46:23 ID:???
>>719
APIでタイムライン上の発言を配列に突っ込んでforeachで一つづつ検索していくとか
724nobodyさん:2009/12/29(火) 17:12:26 ID:???
FileQでcron試してみた。
一分間隔で動くように設定して60分放置。
結果54回動いた。
725nobodyさん:2009/12/30(水) 00:13:07 ID:???
>>722
たしかに、マトモなボット作るなら膨大な量の辞書データがいるね
726nobodyさん:2009/12/30(水) 01:23:09 ID:???
もしかしてcron-jobおかしい?垢削除祭か?
今日の夜から突然動かなくなったんで確認したら綺麗に消されてた
他にも消された奴いる?
727nobodyさん:2009/12/30(水) 02:04:50 ID:???
>726
消された

cron-job、jaになってても1日中botが沈黙とかここ何日かで急になったんだけど
他に同じひといないかな

上にあるFileQ試してみたいんだけどcronでわからなくなってる
Commandにhttp〜じゃだめなのか…
728DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/30(水) 02:49:38 ID:???
Cron-job互換サービスを立ち上げてみたいのですが、結構高性能なサーバーでないと不可能でしょうか?
日本語で使えるサービスが有れば便利だと思うのですが。
729nobodyさん:2009/12/30(水) 03:51:14 ID:???
毎分動かすとなると、それなりに負荷がかかることになるから安い共用鯖じゃ無理
海外の安いVPSを借りてみるとか
730DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/30(水) 05:48:21 ID:???
>>729
自宅鯖です。
model name : Mobile Intel(R) Pentium(R) 4 - M CPU 1.80GHz
memory:512MB
731nobodyさん:2009/12/30(水) 06:06:15 ID:???
oauth使ってると思われるbotが止まったの、アプリのAPIがサスペンデッドになってると思われ。
732nobodyさん:2009/12/30(水) 09:30:58 ID:ScDpW0+E
cron-job消された。
別のメールアドレスで再登録しようと思ったけどダメ。
FileQもよくわからないしめんどくさいなぁ。
733nobodyさん:2009/12/30(水) 11:11:49 ID:???
垢BANされた人はとりあえず応急処置としてパソコン立ち上げっぱなしでブラウザ自動更新しておいたほうがいいね
734nobodyさん:2009/12/30(水) 11:25:59 ID:???
>>726です
あの後別のメールアドレスで再登録して
URLも登録し直したけど大体大丈夫っぽい
たまに動かないけど一時間に一回のボットだからそんな問題ないって感じ
今日から帰省だからその間に止まってたら困るな
やっぱり有料のサーバ借りてやるしかないのか
単なる趣味にしか過ぎないしボットのためにお金注ぐのもなんだかねー。
GAEも検討したけど色々面倒だお
設定に何十時間も掛ったと聞くけど最新のOSでもそう?
あんまりパソコン立ち上げる時間無いからちょっと躊躇してるんだ
735nobodyさん:2009/12/30(水) 12:48:47 ID:???
>>727
コマンドにはhttp://じゃなく
/home/******/public_html/*****.php

と、実行したいファイルのディレクトリを書けばいけるはず。
736nobodyさん:2009/12/30(水) 13:29:29 ID:???
>>735
727です。ありがとう!やってみます
737nobodyさん:2009/12/30(水) 13:43:24 ID:???
>>736
動かなかったら教えてちょ
738nobodyさん:2009/12/30(水) 13:50:50 ID:???
cronを毎分使いたいならやっぱり有料鯖借りないとダメなのかな〜
739nobodyさん:2009/12/30(水) 13:53:47 ID:???
俺の借りてる鯖のcron使って君タチのボット動かしてあげようか????
740DAWNTO_Windy-melt ◆Windy/f9HNwg :2009/12/30(水) 14:20:02 ID:???
>>739
それ、今からやるところですよwww
webからセットアップできるcronのフロントエンドをphpで自作しているので完成次第公開します。
741nobodyさん:2009/12/30(水) 15:37:46 ID:???
わっふるわっふる
742nobodyさん:2009/12/30(水) 15:55:25 ID:???
わっふるわっふる
743nobodyさん:2009/12/30(水) 16:14:07 ID:???
わっふるわっふる
744nobodyさん:2009/12/30(水) 17:12:51 ID:tKJERMBp
735です。
FileQでのcronの動かし方を間違えてレスしてました。
正しいコマンドはこうです。
これは僕の例ですが、index.phpにボットのプログラムを書きpublic_htmlフォルダにアップしました。
*****の部分はアカウント名です。

/usr/local/bin/php /home/*****/public_html/index.php

まず
/usr/local/bin/php
と入力し、半角スペースを入れてから動かしたいファイルの/home/から始まるパスを入力します。
745nobodyさん:2009/12/30(水) 21:48:07 ID:???
FileQ使ってるけど
php /home/ユーザー名/public_html/PHPの入ってるディレクトリ名/ファイル名.php
cd /home/ユーザー名/www/PHPの入ってるディレクトリ名; /usr/local/bin/php ファイル名.php
の2通り試してみたらどっちも同じように動いてるよ
746nobodyさん:2009/12/30(水) 22:03:34 ID:???
↑はコマンド欄に直で入力ね
747nobodyさん:2009/12/30(水) 23:40:14 ID:???
>>744
>>745

取り合えずcron動くのならおk
748nobodyさん:2009/12/31(木) 00:57:09 ID:???
749nobodyさん:2009/12/31(木) 06:14:13 ID:???
FileQにPHPをアップしてもエラーが出る…。
他のサーバにアップしたPHP(FileQにアップしたものと中身は同じ)は問題なく動くのに。
750nobodyさん:2009/12/31(木) 09:04:58 ID:???
>>749
どのフォルダにアップした?
FFFTPとかのアップローダー使った?
751nobodyさん:2010/01/01(金) 09:53:36 ID:???
>>749
サイトからコピペしたときによくあたるんだけど、、文字エンコーディング関連でエラーが出る事がある。
¥がそのままの時はバックスラッシュに変換してみて。linux環境での実話。
SJISをviで読み込ませたら¥記号のままでエスケープできずに狂ったことがあった。
FedoraはUTF8だったので
:%s/¥/\\/g
:set fileencoding=utf8
で保存し直した。
752nobodyさん:2010/01/01(金) 11:29:43 ID:???
>>750
アップローダー(CyberDuck)を使って、パブリック_htmlへアップロードした。


>>751
うーん見た感じ\とかエンコードとかは大丈夫みたいなんだが…。でも返信ありがとう。
753nobodyさん:2010/01/01(金) 15:27:24 ID:???
>>752
エラーの文をコピペしてみれ
スクリプトの記述ミスがいけないのか、文字化けなのか、そもそもそこのサーバーのPHPで使えない関数が含まれてるのか
754nobodyさん:2010/01/01(金) 23:15:29 ID:???
今のcronの主流は

・cron-job消された!手間かけるの面倒!
→FileQ

・cron-job消された!手間をかけるのは厭わない
→GAE

・そもそもcron-job使ってません^^
→自鯖とか各自の鯖のcron

・cron?なにそれこわい
→PC起動したまま延々とリロード

かな?
755nobodyさん:2010/01/02(土) 19:48:02 ID:???
PC起動したまま延々リロードしたときの電気代と月々の鯖代はどっちがかかるんだろう…
756nobodyさん:2010/01/03(日) 00:06:15 ID:???
cronjob.deがあるじゃん
757nobodyさん:2010/01/03(日) 05:35:49 ID:???
GAEでいろいろやってみたがland.toと@pagesは安定してるね
zeroweb(happy888.net)だと、うまく時間内にキャッチできてない→反応しない
昔から借りてる某レンタル鯖は反応するけどその後2回ほどreplyしてしまうし
鯖によって本当にマチマチ…
ちなみにどの間隔も変わらない感じした
758nobodyさん:2010/01/03(日) 10:03:12 ID:???
FileQにうpした際に出るエラー

Fatal error: Call to undefined function curl_init() in /home/tre666/public_html/***/***.php on line 46

46行目は $ch = curl_init();
やっぱcurlが使えないってことでおk?
759nobodyさん:2010/01/03(日) 10:04:31 ID:???
アカウント名消し忘れたwww まいっか
760nobodyさん:2010/01/03(日) 10:11:34 ID:???
そう
curl未対応だな。FileQは
761nobodyさん:2010/01/03(日) 13:37:31 ID:???
http://twitter.com/tre666
トレ君か よろしく
762nobodyさん:2010/01/03(日) 15:48:44 ID:???
cron job、アカウント云々じゃなくてサービスのサーバー自体がおかしいみたい
今朝、持ってる全てのアカウントが消されてて別のメアドでアカウント取ったんだが、新しいcronを設定する端から消されて行くw
アカウント取れたからには個人を特定されて弾かれてる訳ではないだろうし
BOT本体だけでなく、30分に一回フォロー用phpを回すだけのアカウントも消されていたのもそのせいかも
763nobodyさん:2010/01/03(日) 18:45:10 ID:???
>>761
変な汗でた よろしくお願いします

FileQを諦めるかwebcronにするか自力で設定するか…
1日数回の定時postはwebcronにしてたんだけど、リプライはさすがに消費量が激しいので無理だな
764nobodyさん:2010/01/03(日) 21:45:57 ID:???
TL反応のプログラムをcron(サーバーのを使用)で動かそうとしたらこんなエラーメールが届きました
Warning: simplexml_load_string(): Entity: line 1: parser error : Space required after the Public Identifier in /home/***/public_html/***/***.php on line 34

Warning: simplexml_load_string(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /home/***/public_html/***/***.php on line 34

Warning: simplexml_load_string(): ^ in /home/***/public_html/***/***.php on line 34

Warning: simplexml_load_string(): Entity: line 1: parser error : SystemLiteral " or ' expected in /home/***/public_html/***/***.php on line 34

34行目は
$XML = simplexml_load_string($result);
です。
cronjob.deを使ってみても動いている気配がありません。ブラウザでアクセスすると別に何もエラーは出ないのですが。
XMLの読み込みに問題があるのでしょうか?
どうしたらいいのかわからずお手上げ状態です
765nobodyさん:2010/01/03(日) 22:00:13 ID:???
>>764
"または'のエスケープ処理を忘れていませんか?
766nobodyさん:2010/01/03(日) 22:13:34 ID:???
>>765
" や ' を \" や \' にすればいいのでしょうか?
767nobodyさん:2010/01/03(日) 22:33:27 ID:???
>>762
cron-jobは、日本のBotで負荷が異常に増えたのに対して、〜.jp規制をかけているようです。
phpなどの実行URLか、登録メールアドレスが日本のドメインの場合強制排除しているとか。

ソースはほかの開発者さんのツイートなので曖昧ですが、〜.jpを使っていない私が
全く規制されていないのも納得できました。
768nobodyさん:2010/01/03(日) 23:21:18 ID:???
まあ頻繁に話題に出て皆一斉にそれ使ってりゃ規制されんのも当然か。
769nobodyさん:2010/01/04(月) 01:31:21 ID:???
>>345>>352と全く同じ状況なんだが対処法がさっぱりわからない
出来てる人はどうやってるんだろうか…?
770nobodyさん:2010/01/04(月) 01:59:32 ID:???
エラーはなんて出るの?
771769:2010/01/04(月) 02:12:01 ID:???
俺に聞いてると仮定して答えるけど
エラーは出てない、ポストも問題ない、ただin_reply_to_status_idが付与されないだけなんだ
Basic認証の時は出来てたんだけどなぁ
772nobodyさん:2010/01/04(月) 03:03:11 ID:???
>>771
自分はこれで出来てるけどどうだろう
$req = $to->OAuthRequest($host,array("status"=>$aaa,"in_reply_to_status_id"=>"$bbb"));
773769:2010/01/04(月) 07:01:43 ID:???
"in_reply_to_status_id"=>$bbb を "in_reply_to_status_id"=>"$bbb" に変えたら出来た!
単純な話で情けないな…。>>772ありがとう
774nobodyさん:2010/01/04(月) 09:56:27 ID:???
なんだそりゃ。型によって処理分けたりしてるんかね
775nobodyさん:2010/01/04(月) 10:13:46 ID:???
sutatusは基本文字列だから通ってもidは基本数値型だから蹴るみたいな?
どっちにしろ送るときゃ文字列なのにおかしなことをしてるな。
しかも黙って蹴ってるってのがなんだかやな感じだな。
776nobodyさん:2010/01/04(月) 10:48:00 ID:???
>>767
land.toとかだと〜.jpじゃないけど消されるよね
単純に〜.jpで弾いてるわけだもないのかな?
777nobodyさん:2010/01/04(月) 11:43:15 ID:???
FileQでcron設定してみたんだがリプライしても沈黙したまんまだ。
手動なら動くということはファイル自体は問題ないんだよな…?
なにがあかんの……
778nobodyさん:2010/01/04(月) 13:20:42 ID:???
cronjob.deって、登録申込したあとメール来るのにどれくらいかかる?
1日とか待たなきゃいけないのかな…
全然来ないのでちゃんと申込出来てるのかわかんなくなって来た
779nobodyさん:2010/01/04(月) 16:20:35 ID:???
>>778
メールはすぐ来た。が、その後すぐアカウントロックされてしまった。
cron-jobでロックされた人が流れてるからかもしれん
>776
自分は.comドメインだけど鯖がロリポ
鯖IPかアクセスしたIPで日本かどうか判断してるのかも
780778:2010/01/04(月) 17:00:18 ID:???
>>779
違うメアドで登録してみたら今度はすぐに来た
今のところアカロックはされてないみたいだけど
cron-job.orgのときみたいにログイン出来なくなっちゃったの?
781nobodyさん:2010/01/04(月) 19:08:24 ID:???
Gmailで登録してるけどcron-job.orgもcronjob.deも垢消されてないぞ
ただもうcron-job.orgは設定するそばから消えるけど

>>777
コマンド欄にURLそのまま打ち込んでないか?
ちょっと上の方見て来い
782nobodyさん:2010/01/04(月) 19:46:04 ID:???
cron-job、ログインできないのにちゃんと回ってるみたいでTL反応とかし続けてる…
同じ状況の奴いる?
783nobodyさん:2010/01/04(月) 19:51:34 ID:???
>>648
>>649
あなた方のやり取りなかったら、ゴール目前で諦めてた。ありがとう。
784nobodyさん:2010/01/04(月) 19:53:07 ID:???
phpだけじゃマルコフ無理なん
785nobodyさん:2010/01/04(月) 20:57:33 ID:???
FileQで外部サイトのphp回せる?
curl使えない?何のこと?とか思ってたらリプライ用のファイルも回せないってことなんだよな?
お金払っちゃったぜ/(^O^)\
786nobodyさん:2010/01/04(月) 22:02:45 ID:???
>>782
うちのとこもそう。
まったくいじれないのにそのまま動いてるから移行もできない状態…
とりあえず自然にオフになるの待ってる。
787nobodyさん:2010/01/04(月) 22:06:20 ID:???
cron-job.org設定ではerfolgreichってなっているけれど動いてない。
誰か助けて
788nobodyさん:2010/01/04(月) 22:24:40 ID:???
>>345>>352は俺です。
>>769
掘り返してくれてありがとう

>>772
ありがとう出来たよ!
型が違うのかと思ってintvalかませたりとかは試してたんだけど単純な話は単純な話だったんだな…
789nobodyさん:2010/01/04(月) 22:27:08 ID:???
botみかけたけれどcron-job.org今調子わるいのか?
790nobodyさん:2010/01/04(月) 22:29:00 ID:???
むしろ今のcron-job.orgは絶好調
791nobodyさん:2010/01/04(月) 22:31:20 ID:???
>>790
それはギャグで言っているのか? 
792nobodyさん:2010/01/04(月) 22:57:17 ID:???
うちのは問題なしだけど、蹴られないうちにファイル名変えようかな…botていうフォルダだから
向こうに用途悟られて消されかねないし
793779:2010/01/04(月) 23:07:46 ID:???
自分はcron-jobはログインできるんだけど
2つ動かしてたのがどうしても1つしか設定できなくなった
それで.deでアカウント作ったけど速攻でロックされた
deで表示された文を翻訳すると再登録するな+問題あると訴えるみたいな感じだったから
それはねーおwと思いつつ再登録してない

他にもcronサービスあるから皆が上手く分散できるといいんだが…
794nobodyさん:2010/01/04(月) 23:27:24 ID:???
cronも大事なんだが、リプライのOAuth化で躓いてる…
色々削ったり位置を変えてみたけどお手上げだ
795nobodyさん:2010/01/04(月) 23:30:47 ID:???
>>794
あーおなじ
定時ポストのみ対応できてつまずいた
796nobodyさん:2010/01/04(月) 23:48:55 ID:???
定時postとリプライはOAuth対応出来たけどTLに反応が上手くいかん
まあそれ以前にcron探しでbot止まってるから意味ないけどな…
797nobodyさん:2010/01/05(火) 00:18:46 ID:???
あいまいでよくわからんが具体的にどの辺でつまってんだ?
798nobodyさん:2010/01/05(火) 00:25:47 ID:???
webcron.orgからFileQにしてみたが、
ここは凄いな。1分間隔で動くし1年で1000円ぐらいだし
cronの使い方がよくわからなかったが、
>>744>>745の書き込みですんなりできた。
799nobodyさん:2010/01/05(火) 00:36:34 ID:???
>>797
795だけど私は実行してもエラー出ないけどリプライをしてくれない状態
自分で組んだのですがAPIでは動いてくれているので、恐らく組み込みがうまくできていないのではないかと…
800nobodyさん:2010/01/05(火) 00:47:23 ID:???
>>797
794です。自分も>>799と同じくエラーが出ずAPIの状態…
curlを削ってもいいと聞いたので少しずつ削ってその都度試してみたけど駄目だった
801nobodyさん:2010/01/05(火) 00:47:51 ID:???
FileQいいなと思うけどcurlが駄目ってとこで引っかかるのが辛いな
802nobodyさん:2010/01/05(火) 01:37:59 ID:???
curlだけじゃなく他にもダメなのありそうだしな。
803nobodyさん:2010/01/05(火) 01:38:48 ID:???
OAuthは認証した後はbasic認証後と同じようにAPIに投げればいいのかな
804nobodyさん:2010/01/05(火) 03:15:16 ID:???
リプライとかTLはポスト部分だけOAuthに投げてそれ以外は以前のままで使ってる
805nobodyさん:2010/01/05(火) 04:34:41 ID:???
SDNさんのOAuthでのAPI偽装スクリプト使わせてもらおうと思ったんだけど
PHPでOAuthを使う準備の所で、test.php叩いても真っ白い画面でソースも何も出てこないエラーになる
使ってる鯖はステップサーバーでPHP5、対応してないスクリプトなのかと思ったけど
他の同じような環境の鯖で叩くと

・ソ
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /usr/home/akairin5/public_html/twitterOAuth.php on line 21

というエラーが帰ってくる
しかし特に閉じ忘れなども無い気がするんだけど……

誰か同じようなエラーで対応した人いませんですか
色々と考えたけど、自分の経験値では完全に詰みました……
806nobodyさん:2010/01/05(火) 04:35:41 ID:???
ふああああああああああああああああああああああああorz
しくじったアカウント消し忘れたorz
うう、見なかったことにorz
でも助言お願いしますorz
807nobodyさん:2010/01/05(火) 04:50:40 ID:???
ここはうっかりさんが多いインターネットですね
808nobodyさん:2010/01/05(火) 09:46:47 ID:???
>>805
どんまいとしか言えないwww
けど自分も真っ白のページが出てくることがたまにある
809nobodyさん:2010/01/05(火) 10:34:19 ID:???
>>805
文字コード違うとか?
810805:2010/01/05(火) 11:35:24 ID:???
どんまいありがとうございますorz

>>809
最初にDLしたものをそのままUPしたらだめだったので、
文字コードをUTF-8、改行コードも念のためLF固定にして再UPしたんだけどダメで、
更に.htaccess置いてサーバーの方で改行コードを固定してもダメでした。

SDNさんのHP注意書きの様に、スクリプトのバージョン違いかとも思って
2度ほど該当バージョンの物をDLし直したんですがダメでした。

白くなるエラーは私も何度か遭遇して、その度に閉じ忘れとかが原因な事が多かったので
今回もそうなのかなぁと思ったのですが……
配布されているものに間違いがあるとは見た限り思えなくて…

ステップサーバーのPHP注意に、白くなるエラーは、PHP5に対応してないスクリプトの可能性アリ
というのがあったので、疑っても見ましたが、それも無いと思いますし……

謎です

とりあえず、自分でも、OAuth調べ中ですが、お心当たりある方居ましたら
ご助言お願いしますorz
811nobodyさん:2010/01/05(火) 12:04:38 ID:???
うちのOAuthはよくサスペンドにされるんだけど…なんか問題あんのかなあ
812nobodyさん:2010/01/05(火) 14:17:40 ID:???
ウチはSDNさんのところを参考に
定期発言もリプライも全部OAuth認証に変えてみたけど、設置もその後も順調だ
やっぱりサーバーとかの環境によってだいぶ差があるんだな
813nobodyさん:2010/01/05(火) 19:05:30 ID:???
>>782 ノシ
814nobodyさん:2010/01/05(火) 21:16:43 ID:???
こんなとこ見つけたんだけど、使ってる人いる?

ttps://mywebcron-com.loopiasecure.com/
815nobodyさん:2010/01/05(火) 22:09:45 ID:???
>>814
cron-job.orgがダメになってそこに移った
@ページだとほとんど動かなかったから、他の鯖に変えたら動きだした
たまに起動しないけど無料なら想定の範囲内だと思う
816nobodyさん:2010/01/05(火) 22:23:38 ID:???
あんまり広まるとまた規制されそうだが…
SetCronJobでぐぐると幸せになれるかもしれない

ところで、bardothodolさんのスクリプトが元のリプライソースでcurl使わずにOAuth化できますか?
2つあるpost関数のうち下方にあるcurlは削れてちゃんとクライアント名が変わったんだけど、
上の関数と$usernameと$passwordを削ったらpostできなかったんで、OAuth化できたのかできてないのか分からない状態です

こんな状態だけどクライアント名変えるだけでいいっていうならソースとか晒すけど…
FileQを使いたいので curl使わずにOAuth化できればいいな
どなたかご助言願います
817nobodyさん:2010/01/05(火) 22:36:06 ID:???
あと少しで完成なんだけどTLに反応するやつだけ上手くいかない…


$oyasumi = array("台詞1","台詞2","台詞3");
$tadaima = array("台詞1","台詞2","台詞3");

if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if(preg_match( "/おやすむ|おやすみなさい|おやすみます|寝る|寝ます/u", $var )){
$key = array_rand($oyasumi);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}

if(preg_match( "/ただいま|今.*帰ってき/u", $var )){
$key = array_rand($tadaima);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}

ここで下の反応語句いれても上ので反応してしまう
色々なところで調べたりいじったりしたんだけどちょっと症状が違うのか上手いこといかない
馬鹿らしいこと聞いているとは思うんですが手がつけれないので…
誰かわかる方いたらお願いします
818nobodyさん:2010/01/05(火) 22:56:20 ID:???
>>817
中カッコが足りなくて閉じ切ってないのでなんともいえない。
しいていえばpreg_matchがおかしいんじゃない?
あとはちゃんとマッチしてるか確認するために
if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if(preg_match( "/おやすむ|おやすみなさい|おやすみます|寝る|寝ます/u", $var )){

echo "oyasumi <br>";
$key = array_rand($oyasumi);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;

echo "$post $message<br>";
tweet($message ,$username,$password);
}
if(preg_match( "/ただいま|今.*帰ってき/u", $var )){

echo "tadaima <br>";
$key = array_rand($tadaima);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;

echo "$post $message<br>";
tweet($message ,$username,$password);
}

こんな感じでecho入れてブラウザ上で動かしてちゃんと反応するか調べる。ちゃんと動いていれば
oyasumi
台詞1 @reply_name 台詞1
みたいに出力されるはず
819nobodyさん:2010/01/05(火) 22:56:35 ID:???
twitterOAuth.php自体にcurlが使われてるからSDNさんのとこの方法でOAuthにするとFileQでは動かせなくなっちゃうのかな…
FileQにみんなでcurl使えるように嘆願するか?w

それとスレチだけどなんで日本には外国みたいなwebcronサービスがないんだろ
お金かかってもいいからあったら便利なのに
820nobodyさん:2010/01/05(火) 23:02:52 ID:???
>>817
「ただいま」の $post = $oyasumi[$key];
「おやすみ(oyasumi)」になってるよ

あと、

$oyasumi = array("台詞1","台詞2","台詞3");
$tadaima = array("台詞1","台詞2","台詞3");

if($reply_name != $username){
if( !preg_match ( "/@[a-zA-Z0-9-_]{3,}/", $var ) ){
if(preg_match( "/おやすむ|おやすみ|おやすみます|寝る|寝ます/u", $var )){
$key = array_rand($oyasumi);
$post = $oyasumi[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}
if(preg_match( "/ただいま|今.*帰ってき/u", $var )){
$key = array_rand($tadaima);
$post = $tadaima[$key];
$message = "@".$reply_name." ".$post;
tweet($message ,$username,$password);
}
}
}
$i--;
}

↑閉じ方をこうしてみた。
直るかどうかはこの前後のソース次第かもしれないけど…
821nobodyさん:2010/01/05(火) 23:06:38 ID:???
>818
早速ありがとう!
ソース変なところからだった…ごめんなさい。
$i = count($XML)-1;
$j = 0;
while($i >= $j) {
$var = $XML->status[$i]->text;
$reply_name = $XML->status[$i]->user->screen_name;
$name = $XML->status[$i]->user->name;

省略(さっきのソース)

}
}
$i--;
}
長いから省略しました。
これで閉じ切ってるかな…?

とりあえず教えてもらった方法やってまた頑張ってみます!
822nobodyさん:2010/01/05(火) 23:11:35 ID:???
>820
うわっ!本当だ…すっごい恥ずかしいこれ
そこ直したら戻った気がする。一応返してきたからこれで様子見ます!
本当ありがとう…
823nobodyさん:2010/01/05(火) 23:18:50 ID:???
>>819
リプライソースからcurlを消せばいいと思ってた…
そうか twitterOAuth.php自体にcurlがあったorz

5分間隔でいいならSet〜とかでいけるけど、やっぱ5分だと取得漏れが多い気がする
そしてwebcronでリプライ動かしたら破産する
自分で設定するしかないか
824nobodyさん:2010/01/05(火) 23:22:23 ID:???
>>728あたりが安定した国内のcronサービスを作ってくれる とかいう夢を一瞬見た
無料は申し訳ないからできればカンパとかしたい
825nobodyさん:2010/01/05(火) 23:22:50 ID:???
>>823
GAEは?
826nobodyさん:2010/01/05(火) 23:30:51 ID:???
827nobodyさん:2010/01/05(火) 23:37:52 ID:???
>>825
GAEにしようとしたんだが、Google App Engine Launcherを起動すると
See the logfire 'C:\〜GoogleAppEngineLauncher.exe.log' for details
というエラーが出るから積んだよ
再インストールしてもエラー中のlogを消してもだめだった
問題は山積みだ…
828nobodyさん:2010/01/05(火) 23:54:54 ID:???
logの中身みたの?
829nobodyさん:2010/01/06(水) 01:25:16 ID:???
>>828
logの中はこんな感じのが何行か…

Traceback (most recent call last):
File "GoogleAppEngineLauncher.py", line 42, in <module>
File "wx\_core.pyc", line 7913, in __init__
File "wx\_core.pyc", line 7487, in _BootstrapApp
File "launcher\app.pyc", line 53, in OnInit
File "launcher\app.pyc", line 97, in _CreateModels
File "launcher\maintable.pyc", line 35, in __init__
File "launcher\maintable.pyc", line 86, in _LoadProjects
File "launcher\project.pyc", line 63, in ProjectWithConfigParser
File "launcher\project.pyc", line 260, in _LoadFromConfigParser
File "ConfigParser.pyc", line 520, in get
ConfigParser.NoOptionError: No option 'name' in section: '1'

さっぱりなのでweb上のcronに頼ることにするよ
聞いてくれてありがとう
830nobodyさん:2010/01/06(水) 15:02:29 ID:???
オプションのnameがないんじゃね?
831DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/06(水) 15:53:39 ID:???
>>824
わざわざありがとうございます。
本格的に設計開始しましたが、あったらうれしい機能など教えていただけると開発が早く進みます
832nobodyさん:2010/01/06(水) 20:41:01 ID:???
>>831

横レスだけど
cronjobみたいなシンプルなコンパネがあるとうれしいな
833nobodyさん:2010/01/07(木) 02:21:36 ID:???
>>831
楽しみにしてます
かなりのユーザーがいくと思うので負担が大きいかもしれませんが…

cron-job.orgのようにCtrlで時間を細かく選択できたら便利かと思います
時間は1〜2分間隔希望です
834nobodyさん:2010/01/07(木) 02:37:41 ID:???
>>831
もし有料にする場合は、銀行振込にも対応してほしい。
クレカ無いから…。
835nobodyさん:2010/01/07(木) 09:20:32 ID:???
この流れはひどい
836nobodyさん:2010/01/07(木) 10:59:33 ID:???
bot製作とは程遠いな
837nobodyさん:2010/01/07(木) 12:01:35 ID:???
ド素人の質問ですみません。
Kotobuki Lab.さんのページを参考にしてGAEでcronを実行したいのですが
プロジェクト名すら作成例と同じにして丸コピしているのに、うまくいきません。
同じページを参考にしてうまくいった方はいますか?
変えているのはtestcronServlet.javaの11行目、testcronServletをTestcronServlet
にしたのと、botのURLだけです。
現在Logsでは2分おきにWarning No handlers matched this URL.が出っ放し、
Cron Jobsでも常にon time failedとなっています。←これがどういう状態なのかもいまいちつかめてません…
ぐぐったら海外で同じ状態のひとを見つけたのですが、具体的な解答はなされていないようなので、
どうか助言をお願いします。
838nobodyさん:2010/01/07(木) 13:07:48 ID:???
>>837
そのページ見てGAEにチャレンジしたけどうまくいったよ
○○Serblet.javaのファイル名は頭1文字目が大文字じゃないと上手くいかなかった気がする
839nobodyさん:2010/01/07(木) 13:08:57 ID:???
スペルミスってた
Ser「b」letじゃなくてSer「v」letね…
840nobodyさん:2010/01/07(木) 14:39:50 ID:???
>>837
Warning No handlers matched this URL.
ってことはURLが間違ってるって事じゃないのかな
アドレス間違ってるかもしくはGAEからのアクセス弾いちゃってるとかじゃない?
841nobodyさん:2010/01/07(木) 15:21:15 ID:???
>>837>>840
プログラムのURLが合ってても、cron.xmlの方で指定間違えてたら
Warning No handlers matched this URL.って出るよ
>>837はもう一度パス見直してみ
842nobodyさん:2010/01/07(木) 23:18:40 ID:???
>>814
全然動かないんだが...
843nobodyさん:2010/01/07(木) 23:26:01 ID:???
FileQとphpだけで人間によく間違えられるbot作った俺が通りますよー
844nobodyさん:2010/01/07(木) 23:57:56 ID:???
>>843
自慢したいだけなら二度と来ないでください
845nobodyさん:2010/01/08(金) 00:42:38 ID:???
>>844
リプライ返しはあいさつに対してのみ行う場合なら人間っぽいbot簡単に作れるよー。

まず「つぶやき収集bot」を作って、あらゆるツイートを収集し、リプライツイートや時々内容のツイートを取り除きテキストファイルに順に格納していく。

時々内容のツイートを取り除く方法は、まずニュースサイトの記事をyahooの形態素解析APIを使って名詞を抜き出し辞書を作っておく。
そして「つぶやき収集bot」が収集したツイートも形態素解析し名詞を抜き出し、あらかじめ作った辞書を検索しその名詞が見つかればそのツイートは取り除く。

あとはテキストファイルに格納したツイートを適当に抜き出ししゃべらせる。
846nobodyさん:2010/01/08(金) 00:47:33 ID:???
問題は人間の質問に答えられるbotをどう作るかだろう。
あるいは人間とマトモな会話ができるbot。

これはかなり時間がかかりそうだ。
847nobodyさん:2010/01/08(金) 01:51:52 ID:???
手間をかけずに楽しめるbotを作る方がおもしろい。
848nobodyさん:2010/01/08(金) 02:14:44 ID:???
自分に向けられた発言への類推は難しいよな。
品詞ごとに分けておおまかな意味を推測させようかと考えてはみたが

>>846
マトモに会話してるように見えるbotなら人工無脳にいくつかあるけど
あれらを今から作るってのは手間だしマルコフ連鎖で繋げてそれっぽく見せるのがせいぜいだろうな。
辞書登録してやるとどうしても反応できるワードには限りがあるし。
本気で知能やろうとするとと個人でやるには大変だ。
849nobodyさん:2010/01/08(金) 02:48:09 ID:???
さくらサーバーでTLに反応するPHPのcron動かしてる人っていますか?
リプライとかは平気なのにTL反応のcronだけ削除されてしまいます
中身は銀さんのをほぼ丸写ししただけ。なにが悪いんだろう?
850nobodyさん:2010/01/08(金) 04:10:34 ID:???
>>849
cronの実行間隔が短すぎるんじゃねーの?
851nobodyさん:2010/01/08(金) 04:35:57 ID:???
>>850
リプライは3分おきで動いてるのにTLは10分にしても消されました
もっと長くすれば大丈夫かもしれないけどTL反応の間隔が10分以上では遅すぎるし・・・
852nobodyさん:2010/01/08(金) 04:58:44 ID:???
さくらに聞けよ
853nobodyさん:2010/01/08(金) 05:32:19 ID:???
>>851
周期が1時間以内だと、消される方が正常
3分で消えないっておかしいな
854nobodyさん:2010/01/08(金) 06:00:29 ID:???
>>853
そうなのか・・・じゃあさくらサーバー使ってる人でもcronは別な所で動かしてるってことなんですかね?
リプライは平気なのにTLはダメっていうのが不思議だけど、諦めて他の方法で動かすことにします
855nobodyさん:2010/01/08(金) 08:05:52 ID:???
>>848
俺の目標は、ある人が人間と思ってフォローした人たちが全員botだった、という状況を作ることなのだよ。
856nobodyさん:2010/01/08(金) 08:14:21 ID:???
遅くなりましたが>>837です
>>841さんのいうcron.xmlでの指定ミスが原因だったようで、urlのところを直したら
すんなり動いてくれました。web.xmlからURLを確認する過程自体をすっとばしていたという、
なんともお粗末な理由でした…
助言をくださった方、ありがとうございます。botが動いて感激です。
857nobodyさん:2010/01/08(金) 10:56:08 ID:???
cron-job.orgからGAEに変えたんだけど、
GAEのログにファビコンが無いっていうエラーが出まくる
何かファイル追加してファビコンを指定すればいいらしいんだけど
具体的な方法がわからない…どこかに参考になるサイトとかないかな?
858nobodyさん:2010/01/08(金) 12:15:40 ID:???
>>854
さくらだけど消されてないよ。
GAEで動かしてるからかな?

>>857
ブラウザでアクセスするのやめる
859nobodyさん:2010/01/08(金) 12:18:38 ID:???
あ、すまん。
さくらの人が消されたのはcronの方か。
勘違いしてた
860nobodyさん:2010/01/08(金) 17:10:10 ID:voJUVX7V
ごめん、OAuthの話に戻るんだけどさ
SDNさんを参考にして、定時はいけたんだけどリプライとTLがいまいちなんだ。
エラーも出ないでクライアント名とかリプライ元つきで返してくれているんだけど、
なんか叩くとめっちゃ返してくる…
前に答えたやつにも重複して返すし、tmpがうまく読めてないんかな。
初心者ですまない…元々銀次さんの所のコピペに頼りきりだったからどうしてすれば良いかわからないんだ。
教えてくれると凄く幸せになれるんだが…
861nobodyさん:2010/01/08(金) 17:41:13 ID:???
>>860
銀さんとこのリプライソースでいいんだな?
リプライソースの中の

$ch = curl_init();
(中略)
curl_close($ch);

を全部消して、function tweetをSDNさんとこのソースに
tweetの引数は$message以外を削除、って感じで行けると思う
もちろん細かいところは適宜修正してくれ
862nobodyさん:2010/01/08(金) 17:57:17 ID:voJUVX7V
>>861
ありがと。
でもごめん、その通りにしたら
<?xml version="1.0" encoding="UTF-8" ?>
- <hash>
<request>/statuses/update.xml</request>
<error>Incorrect signature</error>
</hash>
て@ページでエラーでたんだけどorz
function tweetの中が間違ってるんかな。
それともrequire_onceの場所がおかしいとか…?
もう訳わからんよ…細かいところの修正が出来てないからかな。
頭悪くてごめんな。
一回貼ったほうがわかりやすい?
863nobodyさん:2010/01/08(金) 18:02:23 ID:???
>>862
見た方が早いことは早いかも
864nobodyさん:2010/01/08(金) 18:13:36 ID:???
>>862
あーごめん
$ch = curl_init();
(中略)
curl_close($ch);
は消さなくてもいいや(OAuth認証でTL取得しない場合は)

消した場合(OAuth認証でTLを取得する場合)は
$XML = simplexml_load_string($result);
のところも変えないと駄目
865nobodyさん:2010/01/08(金) 18:32:53 ID:voJUVX7V
>>864
お、ごめん長くて貼れなくて苦戦してた…
$XML = simplexml_load_string($result);
の部分なんだけど、ごめんどういじれば良い?
866nobodyさん:2010/01/08(金) 18:44:15 ID:???
SDNさんとこのをそのまま使うんならこんな感じかな。ソース汚いけど
if(!empty($line)){
$last_id = $line;
}else{
$cnt = "1";
}
$consumer_key = "consumer_key"; // Consumer keyの値
$consumer_secret = "consumer_secret"; // Consumer secretの値
$access_token = "access_token"; // Access Tokenの値
$access_token_secret = "access_token_secret"; // Access Token Secretの値
// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
// TwitterからGETする
if(($cnt != null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("count"=>$pcount,"since_id"=>$last_id),"GET");
}else if(($cnt != null)&&($last_id == null)){
$req = $to->OAuthRequest($host,array("count"=>$cnt),"GET");
}else if(($cnt == null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("since_id"=>$last_id),"GET");
}else{
$req = $to->OAuthRequest($host,array(),"GET");
}
$XML = simplexml_load_string($req);
867nobodyさん:2010/01/08(金) 18:45:34 ID:???
うおっと、またミスった
$pcountになってるところは$cntで…orz
868nobodyさん:2010/01/08(金) 20:09:05 ID:voJUVX7V
>>867
うわーごめん、何かほんと頭悪いみたい。
TLとかリプライいじってみたけど、返事しないわ…orz
そもそも基本的なこと間違えてる気がしてならない…
ちょっと基本的な事勉強してくるわ、協力してくれてありがと。
869nobodyさん:2010/01/08(金) 23:45:40 ID:???
銀次さんのとこの方法は重くなるからcronに向かないな。
さくらで勝手に削除されたのもそのせいだと思う

問題はその重いスクリプトを多くの人が参考にしてるってことだ
870nobodyさん:2010/01/09(土) 00:01:26 ID:???
自分でOAuthの実装してたんだけど、
アクセストークンと認証トークンの取得までいけた。
で、APIアクセスしようとおもったら
Incorrect signatureっていわれた

これってoauth_signatureの作り方が間違ってるのかな?
871nobodyさん:2010/01/09(土) 00:08:52 ID:???
>>870
自分もその表示が出て、対処方法が全然判らなかったから
一度全部消して、また最初からやり直したらいけたよ。
全然参考になってないけど…体験者より。
872nobodyさん:2010/01/09(土) 00:09:55 ID:???
>>871
マジか・・・
873nobodyさん:2010/01/09(土) 00:15:30 ID:???
ついったは人工無能の分野でも研究対象になんのかな
874nobodyさん:2010/01/09(土) 00:19:34 ID:???
ぜんぜんならない、効率悪い。

しかし、話題性があるから薄っぺらな内容でも
凄い事のようにマスコミが持ち上げてくれる。
875nobodyさん:2010/01/09(土) 00:26:56 ID:???
シグネチャ作るときのURLが固定だったのが原因だった
直したらTweetできたやったあああああああ
876nobodyさん:2010/01/09(土) 01:43:50 ID:???
>>869
PHPにアクセスするとしょっちゅうタイムアウトエラーが出るんだけど、これもそのせいかな?
そのおかげでcronがちゃんと動いていてもポストされないみたいなんだ
877nobodyさん:2010/01/09(土) 02:05:23 ID:???
>>876
869じゃないけどたぶんそのせいだと思う。
cron-jobはただ単に指定したURLを叩くだけだったから、特に削除されるとかないし組み合わせ的には最適だったと思うよ。
878nobodyさん:2010/01/09(土) 04:04:37 ID:???
>>860-868あたりを読んで自分なりに実装したんだけどちっとも動いてくれない…。

//ポスト部分の関数


// OAuthオブジェクト生成

$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret,$message);


function tweet($username,$password,$id)

{

$message = urlencode($message);

$ch = curl_init();

★$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>"$message"),"POST");

curl_close($ch);

}

header("Content-Type: application/xml");

echo $req;

という風にしたら「Fatal error: Call to a member function OAuthRequest() on a non-object in★の行」というエラーが出てきてしまう…。
OAuthでリプライできてる方、ポスト部分はどうなってますでしょうか。
鯖はロリポでPHP5みたいです。
879nobodyさん:2010/01/09(土) 04:05:19 ID:???
わあなんだか余計な改行が挟まれてる
見にくくてすいません…
880nobodyさん:2010/01/09(土) 11:14:41 ID:???
>>878
function tweet$username,$password,$id)を、
function tweet($consumer_key,$consumer_secret,$access_token,$access_token_secret,$message,$to)にするか、
$toをfunction内に書けば多分エラーが出なくなるはず
urlencodeは書いておいたほうがいいかもしれないけど、とりあえずcurlは書かなくておk

でもこれだといちいち呼び出さなきゃいけないから、適当なところに$toと$reqを書いたほうが楽だし軽くなると思う
881nobodyさん:2010/01/09(土) 12:06:30 ID:???
ここの人たちはわかってるんだろうけど、最近は特定ワードを拾ってきて
無差別でフォローしてない相手にもリプライするbotが目に付くようになったね。
ああいうつまんないことで反感買って印象悪くするのは避けたいもんだね。
882nobodyさん:2010/01/09(土) 12:08:43 ID:???
プログラミングができなくても〜を参考にbot作ってます。
話しかけられた時、指定した単語が入ってないと「もう一回言って?」みたいな反応させたいんだけど、
こういう時はどうすればよいですか。
883nobodyさん:2010/01/09(土) 12:27:07 ID:???
>>882
話しかけられた内容に指定ワードがあるかを検索したらいいだけだと思うが
884nobodyさん:2010/01/09(土) 12:55:12 ID:???
>>882
phaさんが設置したbot用掲示板に書いてある
すこしはログ見るとかしてみないか?
885882:2010/01/09(土) 12:59:27 ID:???
本当だ、ちゃんと見てなかった・・・失礼しました
886nobodyさん:2010/01/09(土) 15:19:11 ID:???
8bitさんのスクリプトをOAuthで動かしたくていろいろ弄ってるんだけどうまくいかない
「ライブラリを読み込む」の部分をSDNさんの「twitterOAuth.phpを読み込む」に
「Twitterからタイムラインを取得」をSDNさんの「例えば、TLを取得するのなら」に
それぞれ変更してるんだけど

Warning: array_reverse() [function.array-reverse]: The argument should be an array in /home~.php on line 33
($reply = array_reverse($reply);の行)

Warning: Invalid argument supplied for foreach() in /home~.php on line 41
(foreach($reply as $rep){ の行)

というエラーが出る。これってTLが読み込めてないってことなのかな?
もしかしたら全然見当違いなことしてるかもしれない・・・
887nobodyさん:2010/01/09(土) 15:55:13 ID:???
自分宛以外のリプレイで「@nantoka こんにちわ」という文にbotが「こんにちわ」に
反応しないようにするにはどうしたらいいのでしょうか…

if( $screen_name == $username){ //POSTが自分のPOSTだった場合にサブルーチンから抜ける
return;
}
if( preg_match("/\@$username/",$text)){
//POST内容に「/」で囲まれた中で書かれた文字列(この場合$username=@botのアカウント(自分へのリプライ))を探し、あった場合に次の処理に入る。無かったら対応する括弧以降へ飛ぶ
if( preg_match("/RT/",$text)){ //POST内に「RT」があるかどうか調べる
return; //「RT」がPOST内にあったので、処理を中断してサブルーチンから抜ける
}

ここらへんを変更するのかな?と思って色々触ってるのですが、どうしてもできません…
888nobodyさん:2010/01/09(土) 17:27:25 ID:???
>>880
ありがとうございます。
ttp://mini.bitter.jp/oauth_reply.txt
アドバイスを見ながら書いてみたものが上のURLの物になります($toをfunction tweet()の下に入れてみました)
が、このようにすると

XML パースエラー: 要素が見つかりません。
URL: http://〜oauth_reply.php
行番号: 1, 列番号: 1:

というエラーが出てきてしまいます。このエラーでググってみてもイマイチこの場合と結びつかないというか…。
889nobodyさん:2010/01/09(土) 20:41:00 ID:???
oAuthにむりに固執しなくていいんじゃない?
890nobodyさん:2010/01/09(土) 21:58:48 ID:???
6月以降はベーシック認証が「非推奨」になるんだっけ
どうしたもんかな…
891nobodyさん:2010/01/09(土) 22:17:16 ID:???
きちんと検証してないけど、こんな感じで動かないかな?

<?php
$username = "1111";
$key = "3333";
$consumer_key = "4444";
$consumer_secret = "5555";
$access_token = "6666";
$access_token_secret = "7777";

$filename = "data/data.dat";
$host = "http://twitter.com/statuses/mentions.xml";

$fp = @fopen($filename,'rb') or die("ファイルが開けません");
flock($fp, LOCK_EX);
$line = fgets($fp, 64);
fclose($fp);

if(!empty($line)){
$last_id=$line;
}else{
$cnt = "1";
}
$XML = getObjOAuth($host,$cnt,$last_id,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret);
892nobodyさん:2010/01/09(土) 22:18:02 ID:???
>>891の続き

$i = count($XML)-1;
$j = 0;

while($i >= $j) {
$var = $XML->status[$i]->text;
$com = ereg_replace("\@$username", "", $var);
$id= $XML->status[$i]->id;
$reply_name = $XML->status[$i]->user->screen_name;
$name = $XML->status[$i]->user->name;
$message = serif($reply_name,$name,$com);
//かえって来た値がnullじゃない場合のみ投稿する
if ($message != null){
tweetOAuth($message,$id,$key,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret);
}
$i--;
}
$string = $XML->status[0]->id;

if(!empty($string)){
$dat = (string)$string;
file_put_contents($filename,$dat,LOCK_EX);
}

function serif($reply_name,$name,$com){
(省略)
}
893nobodyさん:2010/01/09(土) 22:19:03 ID:???
>>892の続き

//OAuth経由でTwitterに投稿する
function tweetOAuth($message,$id,$key,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret){
require_once("twitterOAuth.php");
$message = mb_convert_encoding($message, "UTF-8","ASCII,JIS,UTF-8,EUC-JP,SJIS");
// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
// TwitterへPOSTする。パラメーターは配列に格納する
$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message,"in_reply_to_status_id"=>"$id"),"POST");
}

//OAuth経由でTwitterから取得
function getObjOAuth($host,$cnt,$last_id,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret){
require_once("twitterOAuth.php");
// OAuthオブジェクト生成
$to = new TwitterOAuth($host,$consumer_key,$consumer_secret,$access_token,$access_token_secret);
// TwitterからGETする
if(($cnt != null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("count"=>$cnt,"since_id"=>$last_id),"GET");
}else if(($cnt != null)&&($last_id == null)){
$req = $to->OAuthRequest($host,array("count"=>$cnt),"GET");
}else if(($cnt == null)&&($last_id != null)){
$req = $to->OAuthRequest($host,array("since_id"=>$last_id),"GET");
}else{
$req = $to->OAuthRequest($host,array(),"GET");
}
$req_array = simplexml_load_string($req);
return $req_array;
}
?>
894nobodyさん:2010/01/09(土) 22:31:57 ID:???
>>887
8bitnoteさんとこのスクリプトだと思うけどそこは関係ないよ
その下の
elseif( preg_match("/眠い/",$text)){ //上記で調べた自分へのリプライがなかった場合にこの処理に移る。POST内容に眠いが含まれていたら次の処理に移る
の前に@が含まれるpostを弾く処理を入れればいいはず
895888:2010/01/10(日) 01:00:53 ID:???
>>891-893
ソースありがとうございます!
891さんのソースをコピペして動かしてみた結果、Arrayという文字だけはPOSTしてくれるようになりました。
もうちょっとどうにかしてこようとおもいます。
ありがとうございました!
896nobodyさん:2010/01/10(日) 01:20:14 ID:???
>>894
回答ありがとうございます
このPHPにはbotへの@リプライとTLから特定単語を拾ってリプライする動きを書いてます
@が含まれるpostを弾くと、このbotへのリプライに反応する事ができなくなってしまいます…
また

if( $screen_name != $username){ //POSTが自分のPOSTではなかった場合にサブルーチンから抜ける
return;
}

を打ってみたのですがやはりエラーが出ました
897nobodyさん:2010/01/10(日) 01:56:39 ID:???
>>896
「botへのリプライ以外の」@を弾くだけだから大丈夫なはずだけど…
ちなみにうちではこんな感じで、反応語のチェックはswitchで書いてる

if( $screen_name == $username){ //POSTが自分のPOSTだった場合にサブルーチンから抜ける
return;
}if( preg_match("/\@$username/",$text)){ //POST内容にry
(略)
}elseif(! preg_match("/^[0-5]{0,1}$/",$now_g)){ //botが寝てる0〜5時台でなければTL反応させる
switch(true){
case preg_match("/\@/",$text) : return; //他の人への@ならサブルーチンから抜ける←これでbot宛以外のリプライには反応しない
break;
(略)
default : return;
break;
}
}
else{return;}
898nobodyさん:2010/01/10(日) 05:42:07 ID:???
>>891の通りにやってみたら、PHPにアクセスすると真っ白の画面が出るようになってしまった
エラー表示されないから何が何だか・・・
899nobodyさん:2010/01/10(日) 05:42:42 ID:???
>>891
$username = "1111";
$key = "3333";
が何だかわからないんだけど、ごめん参考元?ってなにになるのかな?
900nobodyさん:2010/01/10(日) 10:42:09 ID:???
>>899
えっ
901nobodyさん:2010/01/10(日) 12:03:57 ID:???
>>899
ごめん$key要らない・・・
自分は複数BOT作ってて複数でも使いまわせるようにしてるんで、その名残だ
要らないところ削除して直したつもりが残ってたみたい
902nobodyさん:2010/01/10(日) 12:17:50 ID:???
>>898
>>891のソースにはどこにも出力命令が無いんだから
ブラウザでアクセスして何も表示されないのは当たり前だろ
903nobodyさん:2010/01/10(日) 16:18:50 ID:???
>>902
ごめん。真っ白になるだけでポストしないからどこかにエラーが出るはずだと思ったんだけど
さっき確認したら今まで普通に動いていた別のスクリプトでも同じ現象が起こった
そっちは弄ってないから原因は>>891ではないみたい
904nobodyさん:2010/01/10(日) 23:13:36 ID:???
自動フォロー返し時にDM送るようにしてるんだけど
たまにフォローだけしてDM送られなかったりフォロー失敗してDMだけ送られたりする
この問題解消するときってどうすりゃいいのかな
905nobodyさん:2010/01/11(月) 17:34:10 ID:???
すみません初心者で簡単な質問ですが、分かる方は教えて頂けると助かります…
(例)「おかえり、今日の夕飯は○○ですよ」
という文章で、○○の部分をランダムで変えたいのですがプログラムが分かりません

$mesi = array("和食","洋食","中華");

と書いて、

$mes['night'] = array( //夜の時間に発言
"おかえり、今日の夕飯は $mesi ですよ");

とやっているのですが、「おかえり、今日の夕飯はArrayですよ」と表示されてしまいます
906DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/11(月) 17:40:24 ID:???
>>905
> $mesi = array("和食","洋食","中華");
>
> と書いて、
>
> $mes['night'] = array( //夜の時間に発言
> "おかえり、今日の夕飯は $mesi ですよ");

$mesi = array("和食","洋食","中華");
$num = array_rand($mesi,1);
$mes['night'] = array(
"おかえり、今日の夕飯は $mesi[$num] ですよ");

でいいと思う。
907nobodyさん:2010/01/11(月) 18:02:52 ID:???
>>906
早い回答ありがとう!
ついでに聞いておきたいんですが、$num = array_rand($mesi,1);の1ってなんの意味?
この中から1つ選ぶ…って事?
908nobodyさん:2010/01/11(月) 18:07:19 ID:???
つ公式PHPマニュアル
909nobodyさん:2010/01/11(月) 18:12:07 ID:???
API叩いた後に応答情報あるでしょ。
それが正しく帰ってきてればOKでいいじゃん。
910nobodyさん:2010/01/11(月) 18:25:16 ID:???
php叩いても成功した時はなにも文章が出てきません…
そしてまた行き詰ったんだが、>>906やり方でやってみたら
ときどき何もランダム単語表示されない時がある…
「おかえり、今日の夕飯は ですよ」
みたいな感じ
911nobodyさん:2010/01/11(月) 18:36:05 ID:???
飯抜きだったんだよ
912nobodyさん:2010/01/11(月) 23:35:54 ID:???
だれうま
913nobodyさん:2010/01/11(月) 23:48:16 ID:???
>>910だが、自力でどうにかなった
>>906の方法じゃないけどなぜか出来たのでこれで十分だ
914nobodyさん:2010/01/12(火) 01:54:55 ID:???
自己解決したままじゃなくてどうやって解決したまで書かないと
915nobodyさん:2010/01/12(火) 06:32:37 ID:???
>>849ですが8bitさんのスクリプトを使ってみたらさくらでもcron消されませんでした
GAEやろうとして行き詰まってたところだったから助かった!
916nobodyさん:2010/01/12(火) 19:19:52 ID:???
@をもらうとおみくじを返す系のbotを製作中の初心者です。
phpを2分おきにGAEのcronで叩いてるんですが、タイムアウトにひっかかっているらしく、
たとえば30分以内の@に対しおみくじを返すように設定しても15回中5〜8回程度しか返って来ません。
これを「ひとつの@につきひとつのリプライを返す」というふうに、php側で処理することは可能でしょうか?
GAEのtask queuesも試してみたんですが、This queue is empty.と出て動きません。
きっと非常に初歩的なミスをしているのだと思いますが、どちらかについてご存知の方は
ご助言をお願いしますorz
917nobodyさん:2010/01/12(火) 19:59:34 ID:???
リプライしても無視し続けたらボットだってバレるかな?
918nobodyさん:2010/01/12(火) 21:19:02 ID:???
>>916
重くなってる処理はないか確認してみる
GAEはだいたい4~8秒くらいでタイムアウトになるからその分処理を軽くしなければならないよ

まあ晒せる範囲でソース晒してみたら
919nobodyさん:2010/01/12(火) 23:28:49 ID:???
>>916
同文の投稿制限にひっかかってるとかもあるんじゃないのか
920nobodyさん:2010/01/14(木) 15:32:58 ID:???
投稿関係でうまくいかないときって、連投規制に引っかかってることが多いよ
921nobodyさん:2010/01/14(木) 19:33:13 ID:???
ttp://www.setcronjob.com/って今
@pages使ってる人だと動き不安定?
一度削除して登録し直そうとしてもタイムエラー出るんだが…
922nobodyさん:2010/01/14(木) 22:14:43 ID:???
>>921
さくらでもタイムエラー出る…
923nobodyさん:2010/01/14(木) 22:16:36 ID:???
サーバー自体がおかしいのかね
demoでログインしたらサーバーのcp.phpが入ってた
チェック中なのかな?明日には直ってくれるといいね
924nobodyさん:2010/01/14(木) 22:16:37 ID:???
途中送信した。
今まで調子よかったのになんで急に…入金したばっかりなのに
925nobodyさん:2010/01/14(木) 22:51:55 ID:???
SetCronJobはもう、このURLに達することができません。 誤り: 接続は外で調節しました。
有料垢だろうがjpドメインの鯖を規制してるっぽい。
926nobodyさん:2010/01/14(木) 22:57:00 ID:???
えええ金取ってそれって詐欺じゃん
927nobodyさん:2010/01/14(木) 23:06:05 ID:???
垢自体は凍結されてないので@PAGEからXREAに変えたら使えた。
928nobodyさん:2010/01/14(木) 23:11:02 ID:???
申し訳ございません。 現在、一般向け無料サーバーの募集は行っておりません。 次期募集をお待ち下さい。

XREA…(´・ω:;.:...
929nobodyさん:2010/01/14(木) 23:27:59 ID:???
完全に金かけずにやるのはもう厳しいな
930nobodyさん:2010/01/14(木) 23:30:28 ID:???
>>845
詳しい作り方をblogとかに公開すればアクセス稼げるよきっと
931nobodyさん:2010/01/15(金) 00:30:49 ID:???
URL転送サービスでURL変えて登録だと動かない?
932nobodyさん:2010/01/15(金) 01:11:26 ID:???
GAE使えば無料じゃないか
933DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/15(金) 01:56:33 ID:???
どうも。cronのクローン作るとか言っていた香具師です。
sendmail,postfixが言う事を聞かないのでメールに頼らない認証方法を確立したいのですが、どうすれば良いでしょう…(人任せ)
せっかくTwit専用なのだしtwitterのアカウント経由で認証するのもありだと思います。
そうすれば管理もtitter経由で可能になりますし。
いかがでしょう。
934nobodyさん:2010/01/15(金) 01:59:48 ID:???
SetCronJobの有料垢だけど、管理者からメールきてて
jpドメインでも使えるようにする案と、場合によっては返金するよって内容のものだった。
自分は自力で使えるようになったけど一応、対応はしてくれるみたいでちょっと安心した
935nobodyさん:2010/01/15(金) 02:03:03 ID:???
無料でもjpドメイン使えるようになって欲しいな…
936nobodyさん:2010/01/15(金) 13:49:35 ID:???
phaさんのリプライスクリプトにGAEを組み合わせて使ってるんだけど、
スクリプト中の「何分以内にもらったリプライを読み込む」を2分に、GAEのcronファイルも2分毎に更新にしてあるんだけど、どうも取りこぼしがあるみたいなんだよね。
そういうもん?
937nobodyさん:2010/01/15(金) 14:01:44 ID:???
そうでもない
938nobodyさん:2010/01/15(金) 14:08:56 ID:???
>>936
GAEが誤差があるからな
$limittime = $now - $cron * 60;
ここを変えれば良い
自分は62にしてる
それでも取りこぼしはあるけどね
あまり秒数を増やすと今度は2重投稿しちゃうよ
939nobodyさん:2010/01/15(金) 15:58:06 ID:???
ttp://www.onlinecronjobs.com/
アメリカのでこんなの見つけたけど、使えない?
940nobodyさん:2010/01/15(金) 16:38:38 ID:???
@pages使いでFree Web Cron Serviceでcron設定してるんだけど
一切反応しない…
5分間隔と20分間隔にしているんだけど何が原因なんだろう
941nobodyさん:2010/01/15(金) 17:04:16 ID:???
今人間と会話できるbot作ってるんだけど、アルゴリズムが難しいんだ。
特に感情を持たせるにはどうすればいいかアイディアをくれないか?

一応疑問文に応答するアルゴリズムは大方できてるんだ。
問題は人間らしい感情をどうやって持たせるかなんだ。
942nobodyさん:2010/01/15(金) 19:36:41 ID:???
>>938
おーありがとう!
ためしてみますー
943nobodyさん:2010/01/15(金) 19:42:55 ID:???
>>941
そいつに死ねと言ったら死ぬかな?
944DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/15(金) 22:00:57 ID:???
>>941
感情のパラメータを作成して、単語ごとにエモーショナルレベルを設けて喜、哀、憂、怒などに数値を加算して表現してはいかがか
945nobodyさん:2010/01/15(金) 22:07:19 ID:???
date_default_timezone_set('Asia/Tokyo');
$today = getdate();
$day1 = (55-date(z));

で日付取得と残り日数を計算して
今日は${today['mon']}月${today['mday']}日です。〜〜まであと".$day1."日です
っていうカウントダウンをポストしているんだが、定期だとうまく行くんだがリプレイだと日付が取得できないんだ。
リプライに対応するためにはソース書きなおさなきゃだめなのかな?
946nobodyさん:2010/01/15(金) 22:25:00 ID:???
なんでリプライだと日付が取得できんの?
947nobodyさん:2010/01/15(金) 23:08:29 ID:???
今日は${today['mon']}月${today['mday']}日です。〜〜まであと".$day1."日です
今日は月日です。〜〜まであと日です。
ってなるんだ。
理由は私が聞きたい\(^O^)/
948nobodyさん:2010/01/15(金) 23:32:27 ID:???
両脇に半角スペース入れてみたら?
私も同じような事なった事あるけど、半角スペース入れたら直ったよ
949DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/15(金) 23:49:40 ID:???
>>947
""でくくらなくてよくないか?
""の中に直接変数を書き込めなかったっけ
"〜〜まであと$day日です"でおkだったと思う
950nobodyさん:2010/01/16(土) 00:08:39 ID:???
>>947
引数が渡ってないとかじゃないかな
取得をまるっとユーザー関数の内側に入れてみてはどうだろう

見当違いだったらごめん
951nobodyさん:2010/01/16(土) 10:17:49 ID:???
>>947
その中の変数を取得してから表示するまで処理ごとに表示してみればいんでないの。
952nobodyさん:2010/01/16(土) 10:18:47 ID:???
変数のセットが関数外で、表示は関数内なのにglobal宣言してないとかはよくある話。
953nobodyさん:2010/01/16(土) 12:33:09 ID:???
フレンド発言取り込んでマルコフ連鎖にしてるbot作ってみてるけど
URLとかRTとかノイズ除去するのがわりと手間だね。
954nobodyさん:2010/01/16(土) 21:29:27 ID:???
>>944
なるほどフムフム
955nobodyさん:2010/01/16(土) 23:38:57 ID:???
1つのbotに絡み続けるbotを作ってるんだけど
bot製作のblogとか見ながら作ると「1人の人への連続replyはしない」ようになってるから
誰かを間に挟まないと(もしくはdata.txtの中身を消さないと)リプライしてくれない。
どうすればいいかわからん・・・。誰か教えてください
956nobodyさん:2010/01/16(土) 23:59:48 ID:???
どのブログを見てどういうbotを使ってんのか説明してもらわんとエスパーじゃないんでわからんよ。
957nobodyさん:2010/01/17(日) 00:09:41 ID:???
>>956
ああすまん。「銀さんのbot」と「プログラミングを始める〜」を参考に
設置サーバーも銀さんと同じところにしてる。
とあるbotが特定の言葉をつぶやいたら、それに@で返信させるようにしたいと思ってる
TLに反応させてリプライさせる「プログラミングを〜」にあったものをほぼコピペしてます
958DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/17(日) 00:33:33 ID:???
自分のブログにも書いたりしてますが、cron-jobのクローンの設定法はtwitter経由でいいですか?
botに発言してスケジュール管理です。
959nobodyさん:2010/01/17(日) 00:41:40 ID:???
botにfollowers抜かれた\(^o^)/
960nobodyさん:2010/01/17(日) 00:42:19 ID:???
>>957
落ちついて処理を一歩一歩理解するんだ
それでも分からなかったら聞け
961nobodyさん:2010/01/17(日) 03:12:32 ID:???
>>827
>>829
と同じようにGAEが起動できなくなってしまったんだが…
原因がわからん。わかる人いないかな…
962nobodyさん:2010/01/17(日) 03:18:45 ID:???
963nobodyさん:2010/01/17(日) 03:27:36 ID:???
ボットジェネレーターの質問とかもここでしていいの?
964nobodyさん:2010/01/17(日) 05:30:18 ID:???
ttp://mukurobot.blog101.fc2.com/blog-entry-5.html
ここの記事のカッコに囲われた文字のみをオウム返しする機能を付けたいんだけど
phaさんのスクリプトじゃなくてbardothodolさんのスクリプトで対応させる方法がわかりません

最初そのままつっこんでみたけどやっぱり動かなかったので教えてください
965nobodyさん:2010/01/17(日) 09:00:07 ID:???
動かない時はエラーメッセージを読もう
966964:2010/01/17(日) 09:19:39 ID:???
エラーは出てなくて、特定ワードを含まない時のリプライが返ってきたんだ
bardothodolさんのとこのと色々当てはめてやってみたんだけど
$replies2も$iも見当たらなくて何に当てはめ直せばいいのかがわからなかったorz
もうちょっと睨めっこしてみます
967nobodyさん:2010/01/17(日) 09:36:11 ID:???
そういう時は変数の中身を出力してみてどこで想定外の動作になっているか確認するんだ
968nobodyさん:2010/01/17(日) 09:41:25 ID:???
ボットジェネレーターの質問もここでいいのかわからないけど質問。

たとえば「おはよう」に対して「おはよう」と「グッドモーニン」の二種類のリプで返したい場合、

「おはよう」を受け取ると「おはよう」と返信
「おはよう」を受け取ると「グッドモーニン」と返信

こう二行やるのと

「おはよう」を受け取ると「おはよう","グッドモーニン」と返信

こうやるの、どっちがちゃんと動くんでしょうか
969nobodyさん:2010/01/17(日) 09:49:32 ID:???
そのBOTのコードによる
970nobodyさん:2010/01/17(日) 11:32:40 ID:???
>>827
>>961
自分もエラーが出てGAE Launcher動かないんだが
コマンドプロンプトにコマンド直打ちでデプロイ出来たよ
971nobodyさん:2010/01/17(日) 12:50:08 ID:???
>968ですが自己解決しました。前者で動くみたいです。
スレ汚し失礼しました。
972nobodyさん:2010/01/17(日) 14:01:44 ID:???
GAEのcronでリプライに反応するプログラム動かすと、失敗ばっかりしてる。
スクリプトが重いのかな
973nobodyさん:2010/01/17(日) 23:27:52 ID:???
>>972
そうだね
974nobodyさん:2010/01/18(月) 00:50:08 ID:???
>>972
Twitterに単純にPostするだけのスクリプトと比べて重いの?
975nobodyさん:2010/01/18(月) 02:18:12 ID:???
ttp://d.hatena.ne.jp/bardothodol/20090930#p1
ここのソースを借りてTL上の単語に反応するようにしたいと思っています。
手動でブラウザからphp叩けばきちんと動くんですが
cronで叩くと「ファイルが開けません 」というメールが返って来てしまい、動作しません
ソース見た限りではおそらくdatファイルが開けないという事だと思うんですが…
手動でやる分には問題無いのでcron側の問題でしょうか
メールでphpのエラーメッセージを持ってきているので
cronの実行コマンドのファイルパスは合っていると思います。
プログラミング・cron等は全く手をつけたことがなくて、色々調べてみたのですが
分かりませんでした。
解決方法ご存じの方いらっしゃいませんでしょうか。
976DAWNTO_Windy-melt ◆Windy/f9HNwg :2010/01/18(月) 03:05:41 ID:???
>>975
ソースうpが原則です、その方がスグに解決しますよ
977nobodyさん:2010/01/18(月) 03:13:31 ID:???
パーミッション設定してないだけじゃねーの?
978975:2010/01/18(月) 04:13:21 ID:???
>>976
失礼しました。ソースうpしました。
http://kissho.xii.jp/1/src/1jyou102317.txt
反応語句部分ところとusernameとpass以外いじってません。

>>977
パーミッションというとdatファイルのでしょうか?666に設定してあります。
これで手動ではきちんと動くんですが、もしかしてphpの方も設定しないといけないんでしょうか
試してみます。
979nobodyさん:2010/01/18(月) 13:08:22 ID:???
>>978
cronを使うと途端にファイルが開けなくなる場合は、ファイルのパス指定で間違えてるのがほとんど。
980nobodyさん:2010/01/18(月) 13:57:52 ID:???
スレ違いかもしれないけど、良かったら教えてほしい
今度マルコフ搭載したボット作ろうと思うんだけど、ちゃんと勉強したい
プログラムを自分で組めるまではいかなくても、改変出来る程度の知識を身に付けたいと思ってる
なんか良いおすすめの本とかあるかな?
ちなみに自分のレベルは毛の生えた初心者
981nobodyさん:2010/01/18(月) 14:06:01 ID:???
プログラム全くわかんないならまずphp初心者スレでも見てあそこのテンプレのURL一通り見てくればいんじゃないの。
マルコフ連鎖とか形態素解析とかそういうのは最低限の土台できてからであって
いきなりやろうとしてもろくなことにならんよ。
982nobodyさん:2010/01/18(月) 14:19:22 ID:scJ7qSxR
>>829
google_appengine_projects.ini
を探して消す。
983nobodyさん:2010/01/18(月) 15:21:00 ID:???
bot製作者の方に質問なんですが
よく解除するときはリムーブじゃなくブロックしてくれってあるのはどうしてですか?
リムーブだとなにかまずいんでしょうか
984nobodyさん:2010/01/18(月) 15:27:16 ID:???
>>983
リムーブされてもbotからのフォローが残るからでは?
985nobodyさん:2010/01/18(月) 15:27:26 ID:???
>>983
管理が面倒臭いからじゃない?
フォローしてる人に話しかけるタイプのbotだったりしたら
リムられてるのに話しかけてしまうのは迷惑だろうから
フォロワーとフォローは同じにしておきたいと思うんじゃないか
986975:2010/01/18(月) 15:50:11 ID:???
>>979
cronの実行コマンドのパスでしょうか?
何度も確認してみたのですが、やはりファイルパスは合っています
正常に動くphpと同じディレクトリに入れてあるので、それをコピペしてファイル名書き換えてます
動いているもの→/usr/local/bin/php /home/*****/public_html/*****/post_random.php
動かないもの→/usr/local/bin/php /home/*****/public_html/*****/reply_tlget.php

ちなみにphpのパーミッション設定も変えてみましたが、ダメだったようです。
987nobodyさん:2010/01/18(月) 16:19:57 ID:???
>>986
$filenameの方を絶対パスにしてみて
988975:2010/01/18(月) 17:30:36 ID:???
>>987
それで動くようになりました!!
反応が不安定ですがとりあえず動くようになりました!!
不安定なのはphpの問題っぽいので自力で何とかしてみます
本当にありがとうございました!!
989nobodyさん:2010/01/18(月) 17:55:35 ID:???
>>988

>>979だけど説明悪くてすまなかった
990nobodyさん:2010/01/18(月) 18:04:06 ID:???
>>980
相当難しくなると思う。
初心者ならまずphpでいろんなbot作って基礎を確実にして。

マルコフ連鎖もWikipediaだけではよくわからないと思う。

個人的に思うんだが、マルコフ連鎖を使って呟かせるより他の人の過去の呟きを拾ってbotに呟かせたほうがより人間っぽいと思う。まぁ楽しむ目的でbotつくるならマルコフ連鎖でもいいけど。
991nobodyさん:2010/01/18(月) 20:03:50 ID:???
そういや次スレはどうするんだ?
993nobodyさん:2010/01/18(月) 21:49:46 ID:???
お邪魔します。phaさんの配布されている物を使って作成したbotなのですが、
複数件リプライを貰っているのに最新1件のリプライにしか反応(返事を)しない場合はどのような原因が考えられるでしょうか?
ちなみに手動で叩いてみてもやはり最新1件のリプライにしか反応しませんorz
994nobodyさん:2010/01/18(月) 21:52:04 ID:???
>>993
そのプログラムのリプライ処理の部分を書いてくれ
995テンプレ案2:2010/01/18(月) 21:52:59 ID:???
OAuth
http://wolf.silk.to/labo/oauth.html (要curl)
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
http://j.mp/5uaORh (curl不要その1)
http://j.mp/7vP58W (curl不要その2)

TwitterAPI日本語訳
http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt


他に何かあったら追加ヨロ
996テンプレ案2:2010/01/18(月) 21:53:43 ID:???
OAuth
http://wolf.silk.to/labo/oauth.html (要curl)
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
http://j.mp/5uaORh (curl不要その1)
http://j.mp/7vP58W (curl不要その2)

TwitterAPI日本語訳
http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt


他に何かあったら追加ヨロ
997nobodyさん:2010/01/18(月) 21:53:44 ID:???
だれか次スレ立ててくれ
998nobodyさん:2010/01/18(月) 22:43:45 ID:???
>>978
* * * * * wget http://example.com/aaa.php
ってやってる?

* * * * * wget /var/www/path/to/aaa.php
とかしてませんか?
999nobodyさん:2010/01/18(月) 23:19:20 ID:???
1000nobodyさん:2010/01/18(月) 23:22:38 ID:???
おまんこ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。