トップページphp
1001コメント336KB

【Twitter】 BOT製作支援スレ

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/09/27(日) 14:15:59ID:Dz08qoo4
見当たらなかったので立ててみた

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

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

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

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

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

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

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

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

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

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

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

ttp://pha22.net/text/twitterbot.html
こっちのランダムリプライスクリプトは問題なく拾ってくれるんだが
0058nobodyさん2009/10/17(土) 16:36:16ID:???
じゃあ両方のいいとこ取りすればいい・・!
0059nobodyさん2009/10/17(土) 16:52:44ID:???
ttp://pha22.net/text/twitterbot.html
こっちのスクリプトで特定のワードに反応できるようにカスタマイズできれば一番いいんだけど
素人判断で弄ってエラーで動かなくなった
いい方法ないかね
0060nobodyさん2009/10/17(土) 16:59:12ID:???
ヲチスレとかで、@pha さん呼んだら解決するじゃん・・・・
0061nobodyさん2009/10/17(土) 17:08:52ID:???
>>1-
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
0062nobodyさん2009/10/17(土) 19:19:37ID:???
>>48
Twitter botに実装する方法が分からない…
0063nobodyさん2009/10/17(土) 19:23:27ID:???
マルコフ連鎖って、chasenやmecabなんかが使えるサーバーじゃないと
形態素解析が使えないから、単語単位での分け方け方じゃなくて、
スペース、句読点くぎりしかできなかったはずだけど、違うのかな。
yahoo apiを使えばできるの?
0064nobodyさん2009/10/17(土) 20:51:02ID:???
>>1-1000
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
0065nobodyさん2009/10/17(土) 21:18:42ID:???
>>62
botに実装しない形では完成してるの?
0066nobodyさん2009/10/17(土) 22:05:52ID:???
今、銀さんのbotを見て作ってたんだけど、
定期つぶやきについては最初はうまくできたのに、
リプライ機能もつけようとしてtxtファイルを作ったら、
リプライはおろか定期つぶやきもしてくれなくなった…
手動でphp実行で投稿しようとしてもだめ
txtファイルを消してもだめ
どなたか知恵下さい...
0067nobodyさん2009/10/18(日) 00:36:54ID:???
前のつぶやき(20件)と全く同じ発言しようとしてるからじゃね?
それでもダメなら作り直した方が楽な気がする。
0068nobodyさん2009/10/18(日) 00:44:50ID:???
今、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
0069662009/10/18(日) 00:50:08ID:???
>>67 >>68
うわぁありがとう だからか!すごい納得いった。
テストのつもりだったから
発言4種類くらいで6分間隔くらいで喋らせようとしてたわ。
ほんとサンクスです!! もうちょっと頑張ってみる
0070nobodyさん2009/10/18(日) 00:58:06ID:???
ああ、10件だったっけ…
0071nobodyさん2009/10/18(日) 00:59:39ID:???
> 24時間以内
というのは間違いみたい。数日経っても動かないボットもいる。
テスト用に作った発言の種類が3つのボットだけど。
0072nobodyさん2009/10/18(日) 01:18:12ID:???
そうなると直近の10post分だけどっか別のファイルに記録しておいて、投稿前に
その中に同じ内容が含まれていたら違う発言をpostするようにしたら何とか回避
できるかな。
発言を11個以上用意しておく必要があるけれど。
0073662009/10/18(日) 01:28:40ID:???
今セリフを増やして言葉も変えたら、とりあえず手動での投稿は受け付けたから
やっぱりセリフの重複が問題だったみたい。
ここのスレなかったら多分諦めてたわ、ありがとう助かった!^▽^
0074nobodyさん2009/10/18(日) 10:07:36ID:???
>>65
うん
0075nobodyさん2009/10/18(日) 15:22:23ID:???
>>57
この8bitnoteの方にあるPOST内容から発言を引用するスクリプトを丸コピーしてみたら
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /usr/local/www/
ってエラー出るんだけど質問受付てないし何がいけないんだかさっぱりわかんね
0076nobodyさん2009/10/18(日) 15:24:59ID:???
パースエラーだろが
0077nobodyさん2009/10/18(日) 18:42:16ID:???
bot同士で会話させるた時にある程度会話するとリプライしないようにできる方法ない?
0078nobodyさん2009/10/18(日) 19:07:59ID:???
>>77
http://d.hatena.ne.jp/tomoaki96/20091014#p1
0079nobodyさん2009/10/18(日) 19:22:35ID:???
corn-job.orgって使えるcronの数決まってる?
0080nobodyさん2009/10/19(月) 00:15:54ID:slCeJxW2
なんかおもろいbot教えて
0081nobodyさん2009/10/19(月) 00:38:11ID:???
リプライに関して。
プログラムは基本的に動くんだけど、
たまに「@ID」のみの空白リプライ返してるときがある。
単に負荷がかかりすぎ、ってことなのかな?
同じ症状出た人いたら教えて欲しい……。
0082nobodyさん2009/10/19(月) 02:47:24ID:???
POSTするステータス自体が、何らかの要因でそうなってるんじゃないの?
あとは、\0 が入ってるとか。
どっかにログとして保存しとくと確認しやすいかも
0083nobodyさん2009/10/19(月) 03:19:16ID:???
空リプライはこれが原因とかじゃないかな?
http://d.hatena.ne.jp/bardothodol/20090912
0084nobodyさん2009/10/19(月) 12:45:05ID:???
作ってみたしリプライの出来るんだがシカトが多いなと思ったら
リプライを読み込むまでにもらった最新の一件にしかリプライしないようだ
原因は何が考えられるでしょうか?
0085nobodyさん2009/10/19(月) 13:10:49ID:???
作ってみた内容がわからんから何とも言えない
0086nobodyさん2009/10/19(月) 16:55:12ID:???
最新の一件にしか反応しないようなソースだからじゃないのとしか
0087nobodyさん2009/10/19(月) 19:17:47ID:???
corn-job.orgが使ってるけど1/3くらいの割合で作動しない気がする
どっか2分間隔でcron使える鯖ないかな
0088nobodyさん2009/10/19(月) 20:17:59ID:???
elseif( preg_match("/(.+)(なのか|だったのか)/",$text)){ {//「なのか」または「だったのか」の前に何かしら文字があった場合にマッチ
$nanoka = $1;  //「なのか」または「だったのか」の前の文字を$nanokaに代入  ←この行でパースエラーになるんだけど何がおかしいの?
$mes = array("$nanokaなのかー"); //$nanokaを台詞に組み込んで引用!
$mes_n = count($mes) - 1;
$mesrand = mt_rand (0,$mes_n);
0089nobodyさん2009/10/19(月) 20:19:37ID:???
全角スペースが入ってるから
0090nobodyさん2009/10/19(月) 20:27:16ID:???
>>88
elseif( preg_match("/(.+)(なのか|だったのか)/",$text,$match)){ {
$nanoka = $match[1];  
0091nobodyさん2009/10/19(月) 20:29:06ID:???
>>88
あと
>$mes = array("$nanokaなのかー"); //$nanokaを台詞に組み込んで引用!
>$mes_n = count($mes) - 1;
>$mesrand = mt_rand (0,$mes_n);
は何をやりたいのかよくわからないのだけど
これだと count($mes) は必ず1になると思う
0092nobodyさん2009/10/19(月) 20:39:42ID:???
>>1-1000
twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
0093nobodyさん2009/10/19(月) 20:40:27ID:???
ああ$1とか書いてるからか・・・
0094nobodyさん2009/10/19(月) 20:41:58ID:???
>>90
迅速な回答ありがとう
おかげでとりあえずエラーは消えたが何故かリプライに反応はしなかった
0095nobodyさん2009/10/19(月) 21:40:31ID:???
corn-job.org2分間隔と30分間隔で使ってるけど2分の方ほとんど機能しねえ
間隔長い方がいいのか?関係あんのかな
0096812009/10/19(月) 22:14:13ID:???
>>82 >>83
ありがd ちょっと試してみる。
空リプライをポストしないようにすればいいんだな、とりあえず。
0097nobodyさん2009/10/19(月) 22:56:38ID:???
bot動かすのに一番向いてる鯖ってどこ
cron使えるとこで
0098nobodyさん2009/10/19(月) 23:11:03ID:???
俺の鯖
0099nobodyさん2009/10/19(月) 23:22:10ID:???
さくらサーバーってcron最短で何分間隔で使えるんだろ
0100nobodyさん2009/10/19(月) 23:26:10ID:???
twitterにアクセスできて、任意のプログラムを動かせるのであれば
鯖である必要すらない。
0101nobodyさん2009/10/19(月) 23:48:38ID:???
>>93
Perlやってると陥るミスだな。
構文微妙に似てるせいで同じとこと違うとこを混同しやすい。
0102nobodyさん2009/10/20(火) 00:42:14ID:???
手動だとちゃんとポストされるのにcronがポストしてくれない
ドイツのサイト使ってるけどここだめなのか
0103nobodyさん2009/10/20(火) 01:12:52ID:???
普通にcron使えよw
0104nobodyさん2009/10/20(火) 02:01:10ID:???
ちょっと前に名前を呼ばれてたので名前を出すけど@phaです。
特定の単語に特定の単語を返す機能は次のバージョンアップで付ける予定です。
もうちょっと待ってくださいー。
0105nobodyさん2009/10/20(火) 02:45:47ID:???
>>102
例のドイツのサイト、多分今すごく負荷かかってるんじゃないか?
良くも悪くも、かなり認知度高まってきた感じだし。
0106nobodyさん2009/10/20(火) 05:16:21ID:???
>>104
すっごい頼りにしてる。
0107nobodyさん2009/10/20(火) 17:59:03ID:???
@phaさんが配布してるのと、
時間になったら寝たり、時間帯のつぶやきを組み合わせようとして
途中までうまくいってたんだけど
文字化けしちゃってうまく出来なかった・・・。
誰かやってうまく行った人居ませんか?
0108nobodyさん2009/10/20(火) 18:25:20ID:???
>>104
@phaさんキタ━━━━(゚∀゚)━━━━!!
待ってます!!!!!!!
0109nobodyさん2009/10/20(火) 18:42:07ID:???
>>104
お世話になってます
0110nobodyさん2009/10/20(火) 18:50:55ID:???
>>107
文字コードの設定を見直してみ
UTF-8になってないと化ける
0111nobodyさん2009/10/20(火) 19:50:08ID:???
cron-job.orgが使い物にならないからxreaでcron動かそうと思ったが設定とか全くわかんね
正直ナメてたわ誰か助けて
0112nobodyさん2009/10/20(火) 20:38:42ID:???
xreaのcronだったら下のほうに解説ないかな。
もしくはcronでぐぐって設定とかをちょっと勉強するのがよいかも。
0113nobodyさん2009/10/20(火) 20:45:56ID:???
とりあえず、シェルっていうのが必要ということはわかった
このシェルスクリプトをサーバーにうpして、それにアクセスするとnotfoundになるんだけど間違ってるから?

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ttp://ameblo.jp/liam7/entry-10363726388.html
ここ参考にしようと思ったらcurl使えなくて
0177nobodyさん2009/10/24(土) 11:33:14ID:???
>>172
上の人じゃないけどGAEでcronできたよ。

http://builder.japan.zdnet.com/sp/google-app-engine/story/0,3800086196,20371257,00.htm
http://code.google.com/intl/ja/appengine/docs/python/config/cron.html
http://code.google.com/intl/ja/appengine/docs/python/urlfetch/overview.html

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

@botの発言:
@aaa AAA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

それはともかく、自分のbotも反応ワード以外のリプライを貰うと空のリプライしてたんだけど、textのデータを弄ったら直ったよ。
サーバにアップしてあるtextのファイルがあるでしょ?
どうやらphaさんのは、反応ワード以外のリプライを貰うと、そのtextファイルに書いてあることをリプライするプログラムらしいので、そのtextファイルに、分からなかった場合のセリフを書き込めば良いってわけ。
そうすれば空のリプライしなくなると思う。
03523452009/11/24(火) 09:40:53ID:???
>>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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>435
そういうときは「必要じゃないかもしれないけどうpする」のが2ちゃんのしきたりだろ
しきたり守れよ
0438nobodyさん2009/12/06(日) 12:58:19ID:???
>>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();

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

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

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

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

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

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

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

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

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

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

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

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

他の、例えば天気予報や占い等の否キャラbotなら気にしないでいいと思う
0479nobodyさん2009/12/09(水) 16:09:54ID:???
ごめん、478の最初のほうは「キャラbotなら」という前提の話しです
0480nobodyさん2009/12/09(水) 17:26:34ID:???
>>477
別にいいんじゃないの?
俺もキャラbot作っててその状況なったことあるけど(しかも後者)
別にそのまま気にせずやってるなぁ
キャラbotでも複数あるキャラとかあるし
それぞれに面白みがあればいいんでないかな
0481nobodyさん2009/12/09(水) 17:38:38ID:???
>>477
内容ダダ被りとかでなければいいんじゃないの?
自分も某キャラのbot作ってるけど、友人も同じキャラのbot作ってる
性格がだいぶ違う設定になっているのでフォロワーさんは自分の好みの方を
選んでフォローしてる感じ
実際に「○○のbot見つけたけど下ネタが多くて無理、
もうひとつ違うのがあったからこっちフォローした!」っていう呟きも見たしさ
0482nobodyさん2009/12/09(水) 20:10:44ID:???
>○○○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
0483nobodyさん2009/12/10(木) 01:10:25ID:???
自鯖の人は少数なのかな
0484nobodyさん2009/12/10(木) 02:10:48ID:???
鯖は立ててないけど自前のPCでやってるよ
PHPさえインストールしてりゃWSHかなんかで自動実行できるしね
0485nobodyさん2009/12/10(木) 03:22:04ID:???
GAEで30分に1回呟くcronを動かしてて、
慣れてきたからリプライにも反応するように新しくphpを用意したんです。
んでもって新しいアプリケーションと2分間隔で回るファイルを作りました。
いざデプロイしたら元の30分の方まで2分間隔で回るようになって、
しかもリプライの方がひとっことも話しません。
何がいけないのか自分にはさっぱりわからないので知恵をお貸しくださいorz
0486nobodyさん2009/12/10(木) 03:23:40ID:???
GAEを使わない
0487nobodyさん2009/12/10(木) 05:14:39ID:???
動かないって人は本体が最近バグ出てるしよく落ちるし
今は様子見の方がよくないか?
明らかなエラーとかでない限り

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

色々試したけど追加書き込みされたりポストしたばかりのだけになったりする。
rで配列Aに読み込み→wで全消し→aで書き込みするしかないのかな?
そもそもこんな機能いらない?
0530nobodyさん2009/12/13(日) 16:33:37ID:???
ついにできた^0^/
GoogleにでもUPするかな
0531nobodyさん2009/12/13(日) 18:15:45ID:???
>>529
まず言語は?
0532nobodyさん2009/12/13(日) 18:34:07ID:???
>>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);
0533nobodyさん2009/12/13(日) 18:37:38ID:???
//ポスト選定と審査
$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);
0534nobodyさん2009/12/13(日) 18:40:36ID:???
Service_Twitter設定は銀さんのここと一緒
http://d.hatena.ne.jp/silverbot/20090829/1251532471

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


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

die('ERROR');

}
を抜いてやってみたら、ただの白いページが出た…
そんでもって投稿はされてない
あるとERRORになってないとシカトって一体どういう…???
0536nobodyさん2009/12/13(日) 23:02:07ID:???
>>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に書きこむ用のコードだと思うがいろいろなとこ抜けてて心配だ
0537nobodyさん2009/12/13(日) 23:35:20ID:???
>>534
の銀さんのBOTの作り方見てたけど結構ひどいな。
Services_Twitterを今後使うと見せかけて、リプライとかは全く関係ない別のソースを使ってる。
PHP触ったばかりかもしれないから仕方ないけど。
0538nobodyさん2009/12/14(月) 00:25:34ID:???
>537
銀さんとこのは全部他のとこの記事のコピペだよ
リプライと定時のソースはそれぞれ違う人から持ってきてるんだから
関係なくて当たり前
0539nobodyさん2009/12/14(月) 00:29:22ID:???
>>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文なら大丈夫でしょうか?いいやり方があれば教えていただきたいです。
0540nobodyさん2009/12/14(月) 01:04:19ID:???
>>539
タイムアウトするのはtwitterの鯖なのか、botを動かしている鯖なのか、どっちですか?
twitterだったら鯖が重いかtwitterにPOSTするスクリプト(botとしての機能じゃない方)が悪い。
botを動かしている鯖なら鯖変えるとか。


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

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

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

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

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

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

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

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

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


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

↑銀次さんのやつ。
リンク貼るくらいしかできないけど頑張れー!
サーバの用意とかpostさせる手順1とか、トラックバックのとこに色々あるから。
0571nobodyさん2009/12/14(月) 18:30:34ID:???
>>569
da ma re
0572nobodyさん2009/12/14(月) 18:30:54ID:???
あ、やりたいのはフォロー返しなのか・・・
お役に立てなかったかも。。ごめん
0573nobodyさん2009/12/14(月) 18:55:50ID:h7BWhtMh
いえいえ、教えてくれた方ありがとう!!ゆっくり銀さんのを読んでみますね。参考になります。
0574nobodyさん2009/12/14(月) 19:05:13ID:???
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 =〜以降を増やせばいいのかもしれないが、どうやって追加すればいいのか分からないんだ
だれか助けてくれ
0575nobodyさん2009/12/14(月) 19:18:30ID:???
>>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;
}


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

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

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

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

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

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

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

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

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

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

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

別プログラムでリプライとか入れてるならそっちも含めたログにすると理想的
0603nobodyさん2009/12/15(火) 20:33:24ID:???
選び直しを入れてるからタイムアウトになるんだろ
0604nobodyさん2009/12/15(火) 20:43:17ID:???
選び直し入れないと判定そのものの存在意義がなくなる
ちゃんとポストするために入れてるんじゃないの?
結局ポスト出来ないなら判定もログ保存もツイッターがしてくれるからいらないよ
0605nobodyさん2009/12/15(火) 23:59:15ID:???
cron-jobが動いてくれないよ〜;0;
botがまったく無反応になってしまった・・・
0606DAWNTO_Windy-melt ◆Windy/f9HNwg 2009/12/16(水) 00:14:04ID: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
0607nobodyさん2009/12/16(水) 00:59:49ID:???
>>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];//ポストする文にする


こうか
0608nobodyさん2009/12/16(水) 01:08:08ID:???
foreach($log as $logs){
これは・・・ゴクリ
0609nobodyさん2009/12/16(水) 01:11:00ID:???
ちなみにそれ重複が判明した以降の$logsしか判定しないぞ
0610nobodyさん2009/12/16(水) 01:34:58ID:???
>>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みたいな鯖じゃなくてもっといい鯖使えばいいのにとか思ったり。
0611nobodyさん2009/12/16(水) 01:54:02ID:???
俺だったら
$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でもいいけど
0612nobodyさん2009/12/16(水) 10:29:53ID:???
foreach($log as $logs){
↑これって配列をつくって並べてる、であってる?
まずいの?
phaさんのこれじゃね?
0613nobodyさん2009/12/16(水) 10:44:25ID:???
こうじゃね?
あと改行削るべきだし、できたらファイル読み込みとかにエラーチェック入れたいが。

$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)];


0614nobodyさん2009/12/16(水) 10:45:55ID:???
あ、テスト用に追加してた@はなくてもいいやむしろ取ったほうがいい。
エラー出さなくするものだから。
0615nobodyさん2009/12/16(水) 11:02:27ID:???
ログが常に最新10件である事前提だな…
xmlで取って来れないものか
そうしたら最新10件のログを作成する部分だけはいらなくなる
0616nobodyさん2009/12/16(水) 11:06:29ID:???
え?どういうこと?
0617nobodyさん2009/12/16(水) 11:13:08ID:???
あー他の部分見てなかったけどこれAPIからのログは読んでないわけか。
まあいんじゃね。
ていうかxmlでもjsonでもAPI叩けば拾ってこれるし。
0618nobodyさん2009/12/16(水) 11:35:25ID:GKFzjgHo
タロット占いできるキャラbotを作りたいんですが、
botというかPHP初心者で取っ掛かりが分かりません。
スクリプトがあまり重くなると困るので、
タロットの結果を書いたxmlを作って「占って」とリプライされたら
そのつどタロットのxmlを読み込んで結果をランダムに出力するとか可能ですか?
それともみなさん、
$tarot=array("",""......);
とかでやってるんでしょうか・・・?
0619nobodyさん2009/12/16(水) 12:20:23ID:???
>>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使ったこと無いから位置指定に変数が使えるかどうか試してない。

配列の最後のキーを簡単に取得できる方法があったらごめん
0620nobodyさん2009/12/16(水) 14:11:14ID:???
>>619
そこで行数カウントしなくても
$plist_uniq = array_diff($plist, reverse(array_slice($log,0,10)) );
reverseで逆転すればいいだけだし
要素数カウントするなら別に $i = count($log) ;みたいなこともできる。
0621nobodyさん2009/12/16(水) 14:14:05ID:???
あー、こっちのが楽か。
$plist_uniq = array_diff($plist, array_slice($log,-10) );
0622nobodyさん2009/12/16(水) 23:19:30ID:j0jV78ZZ
http://www.kc-c.biz./consulting/contents-business/twitter.html
ここにヒントが...
0623nobodyさん2009/12/17(木) 01:12:23ID:???
ただの宣伝じゃねーか。
0624nobodyさん2009/12/17(木) 21:45:44ID:???
自動フォロー返しのときにDM送ろうとしてるんだが
そのDMのメッセージ内容に相手のname(screen_nameじゃない方)を使いたいときどうすればいい?
0625nobodyさん2009/12/17(木) 22:32:36ID:???
TL取得すると一緒についてくると思うけど
0626nobodyさん2009/12/18(金) 00:57:26ID:???
そのものnameって値で入ってるっしょ。
0627nobodyさん2009/12/18(金) 19:37:19ID:???
フォローにTLは取得しない
フォローイングとフォロワーのAPIでname取得できなくね?
0628nobodyさん2009/12/18(金) 19:42:38ID:???
取得すればいいのでわ?
0629nobodyさん2009/12/18(金) 20:11:26ID:???
TL上で俄かにOAuthで認証するのが流行り出した。
クライアント名を変えられるのが人気らしいですね。
使ってますか?
私はまだベーシック認証ですが。
0630nobodyさん2009/12/18(金) 21:22:41ID:???
すみませんだれか知恵をお貸しください。
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画面ではちゃんと書き込みができるのようでもう何が何やらさっぱりです。
申し訳ございませんが誰かご教授いただけると嬉しいです。
06316302009/12/18(金) 21:30:49ID:???
すみません630です。
何故か今、回復してしまいました
サーバーの調子が悪かったのでしょうか・・・
スレ汚してしまい本当にすみません
0632nobodyさん2009/12/18(金) 22:56:43ID:???
>>631
そういう時はできるだけ詳細を書いておけば後続者の役に立つと思うからまだ見ていたら覚えといてくれ。
0633nobodyさん2009/12/18(金) 23:08:00ID:???
自分もphaさんのを利用させてもらってるんだけど、
返すリプライによって画像を変えたい場合ってどうしたらいいんですかね?
他の方のプログラムだとみつけたんだけどphaさんのって発言はテキストファイルで他の人とちょっと勝手が違うからよくわからないです…
0634nobodyさん2009/12/19(土) 00:14:49ID:???
phpを勉強して折衷したプログラムを作ればいい
0635nobodyさん2009/12/19(土) 00:32:47ID:???
フォローしてない人の発言を特定のキーワードで検索、取得するにはどうすれば良いのでしょうか…
0636nobodyさん2009/12/19(土) 01:02:08ID:???
http://search.twitter.com/
http://pcod.no-ip.org/yats/
http://buzztter.com/

このあたりがRSS吐いてるから適当に解析するよろし。
0637nobodyさん2009/12/19(土) 02:33:57ID:???
>>636
Thanx a lot!
0638nobodyさん2009/12/19(土) 07:18:16ID:???
>>629
ベーシック認証が廃止になるから
http://twitter.com/tweeterjp/status/6522684422
0639nobodyさん2009/12/19(土) 11:42:19ID:???
>>638
ついーたーが言ってるだけじゃなあ。
URLもRT用の無駄URLだしソース元ないん?
0640nobodyさん2009/12/19(土) 14:52:54ID:???
http://jp.techcrunch.com/archives/20091209twitter-le-web-2009/
http://apiwiki.twitter.com/OAuth-FAQ
0641nobodyさん2009/12/19(土) 17:58:05ID:???
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)
0642nobodyさん2009/12/19(土) 18:26:07ID:???
>>641
まず、ml115を買ってくる

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

FileQ試してみたけどスゲーな
安定して1分間隔でcron動く
1年1180円だしこれでいいんじゃね?
0716nobodyさん2009/12/28(月) 19:59:23ID:???
rep2置いたらジエンにつかえるじゃん
0717nobodyさん2009/12/28(月) 21:38:58ID:???
名詞や動詞を組み合わせて発言するボットを作ってる人多いけど、文意がおかしな事になってるじゃん。
もっとちゃんと作ったらいいじゃん。
0718nobodyさん2009/12/28(月) 22:10:42ID:???
>>715
FileQは操作に慣れるのに時間がかかる。
慣れるまでが問題かな。
0719nobodyさん2009/12/29(火) 01:24:34ID:???
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が使えるサーバーを探すべきか…
0720nobodyさん2009/12/29(火) 01:34:48ID:???
>>717
マルコフ連鎖とかいうのを実装して作るんだけど、あくまで「文と文のつながり」を記憶できるだけであって、文意の解析までは辿りつけてないよ。
発言ごとに辞書引いて意味を覚えるとか面白いとは思うけど、労力が足りないんじゃないかな。
0721nobodyさん2009/12/29(火) 03:33:58ID:???
cronはwindowsでもできたはず・・・
ttp://www.bitfolge.de/pseudocron-en.html
0722nobodyさん2009/12/29(火) 05:41:41ID:???
>>717
>>720だし、マルコフじゃなく自分である程度の文章のつながりを作るのもできんこともないけど
すげーめんどくさいか、すげー少ないバリエーションになってしまう。
あれはああいうカオスな発言を楽しむもんだと思ってる。

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

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

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

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

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

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

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


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

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

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

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

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

かな?
0755nobodyさん2010/01/02(土) 19:48:02ID:???
PC起動したまま延々リロードしたときの電気代と月々の鯖代はどっちがかかるんだろう…
0756nobodyさん2010/01/03(日) 00:06:15ID:???
cronjob.deがあるじゃん
0757nobodyさん2010/01/03(日) 05:35:49ID:???
GAEでいろいろやってみたがland.toと@pagesは安定してるね
zeroweb(happy888.net)だと、うまく時間内にキャッチできてない→反応しない
昔から借りてる某レンタル鯖は反応するけどその後2回ほどreplyしてしまうし
鯖によって本当にマチマチ…
ちなみにどの間隔も変わらない感じした
0758nobodyさん2010/01/03(日) 10:03:12ID:???
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?
0759nobodyさん2010/01/03(日) 10:04:31ID:???
アカウント名消し忘れたwww まいっか
0760nobodyさん2010/01/03(日) 10:11:34ID:???
そう
curl未対応だな。FileQは
0761nobodyさん2010/01/03(日) 13:37:31ID:???
http://twitter.com/tre666
トレ君か よろしく
0762nobodyさん2010/01/03(日) 15:48:44ID:???
cron job、アカウント云々じゃなくてサービスのサーバー自体がおかしいみたい
今朝、持ってる全てのアカウントが消されてて別のメアドでアカウント取ったんだが、新しいcronを設定する端から消されて行くw
アカウント取れたからには個人を特定されて弾かれてる訳ではないだろうし
BOT本体だけでなく、30分に一回フォロー用phpを回すだけのアカウントも消されていたのもそのせいかも
0763nobodyさん2010/01/03(日) 18:45:10ID:???
>>761
変な汗でた よろしくお願いします

FileQを諦めるかwebcronにするか自力で設定するか…
1日数回の定時postはwebcronにしてたんだけど、リプライはさすがに消費量が激しいので無理だな
0764nobodyさん2010/01/03(日) 21:45:57ID:???
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の読み込みに問題があるのでしょうか?
どうしたらいいのかわからずお手上げ状態です
0765nobodyさん2010/01/03(日) 22:00:13ID:???
>>764
"または'のエスケープ処理を忘れていませんか?
0766nobodyさん2010/01/03(日) 22:13:34ID:???
>>765
" や ' を \" や \' にすればいいのでしょうか?
0767nobodyさん2010/01/03(日) 22:33:27ID:???
>>762
cron-jobは、日本のBotで負荷が異常に増えたのに対して、〜.jp規制をかけているようです。
phpなどの実行URLか、登録メールアドレスが日本のドメインの場合強制排除しているとか。

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

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

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

他にもcronサービスあるから皆が上手く分散できるといいんだが…
0794nobodyさん2010/01/04(月) 23:27:24ID:???
cronも大事なんだが、リプライのOAuth化で躓いてる…
色々削ったり位置を変えてみたけどお手上げだ
0795nobodyさん2010/01/04(月) 23:30:47ID:???
>>794
あーおなじ
定時ポストのみ対応できてつまずいた
0796nobodyさん2010/01/04(月) 23:48:55ID:???
定時postとリプライはOAuth対応出来たけどTLに反応が上手くいかん
まあそれ以前にcron探しでbot止まってるから意味ないけどな…
0797nobodyさん2010/01/05(火) 00:18:46ID:???
あいまいでよくわからんが具体的にどの辺でつまってんだ?
0798nobodyさん2010/01/05(火) 00:25:47ID:???
webcron.orgからFileQにしてみたが、
ここは凄いな。1分間隔で動くし1年で1000円ぐらいだし
cronの使い方がよくわからなかったが、
>>744>>745の書き込みですんなりできた。
0799nobodyさん2010/01/05(火) 00:36:34ID:???
>>797
795だけど私は実行してもエラー出ないけどリプライをしてくれない状態
自分で組んだのですがAPIでは動いてくれているので、恐らく組み込みがうまくできていないのではないかと…
0800nobodyさん2010/01/05(火) 00:47:23ID:???
>>797
794です。自分も>>799と同じくエラーが出ずAPIの状態…
curlを削ってもいいと聞いたので少しずつ削ってその都度試してみたけど駄目だった
0801nobodyさん2010/01/05(火) 00:47:51ID:???
FileQいいなと思うけどcurlが駄目ってとこで引っかかるのが辛いな
0802nobodyさん2010/01/05(火) 01:37:59ID:???
curlだけじゃなく他にもダメなのありそうだしな。
0803nobodyさん2010/01/05(火) 01:38:48ID:???
OAuthは認証した後はbasic認証後と同じようにAPIに投げればいいのかな
0804nobodyさん2010/01/05(火) 03:15:16ID:???
リプライとかTLはポスト部分だけOAuthに投げてそれ以外は以前のままで使ってる
0805nobodyさん2010/01/05(火) 04:34:41ID:???
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

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

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

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

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

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

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

謎です

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

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

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

こんな状態だけどクライアント名変えるだけでいいっていうならソースとか晒すけど…
FileQを使いたいので curl使わずにOAuth化できればいいな
どなたかご助言願います
0817nobodyさん2010/01/05(火) 22:36:06ID:???
あと少しで完成なんだけど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);
}

ここで下の反応語句いれても上ので反応してしまう
色々なところで調べたりいじったりしたんだけどちょっと症状が違うのか上手いこといかない
馬鹿らしいこと聞いているとは思うんですが手がつけれないので…
誰かわかる方いたらお願いします
0818nobodyさん2010/01/05(火) 22:56:20ID:???
>>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
みたいに出力されるはず
0819nobodyさん2010/01/05(火) 22:56:35ID:???
twitterOAuth.php自体にcurlが使われてるからSDNさんのとこの方法でOAuthにするとFileQでは動かせなくなっちゃうのかな…
FileQにみんなでcurl使えるように嘆願するか?w

それとスレチだけどなんで日本には外国みたいなwebcronサービスがないんだろ
お金かかってもいいからあったら便利なのに
0820nobodyさん2010/01/05(火) 23:02:52ID:???
>>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--;
}

↑閉じ方をこうしてみた。
直るかどうかはこの前後のソース次第かもしれないけど…
0821nobodyさん2010/01/05(火) 23:06:38ID:???
>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--;
}
長いから省略しました。
これで閉じ切ってるかな…?

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

5分間隔でいいならSet〜とかでいけるけど、やっぱ5分だと取得漏れが多い気がする
そしてwebcronでリプライ動かしたら破産する
自分で設定するしかないか
0824nobodyさん2010/01/05(火) 23:22:23ID:???
>>728あたりが安定した国内のcronサービスを作ってくれる とかいう夢を一瞬見た
無料は申し訳ないからできればカンパとかしたい
0825nobodyさん2010/01/05(火) 23:22:50ID:???
>>823
GAEは?
0826nobodyさん2010/01/05(火) 23:30:51ID:???
ググッたらこんなんあったけど、まだ試してない
ttp://blog.makotokw.com/2010/01/03/oauth%E5%AF%BE%E5%BF%9C%E3%80%81curl%E3%81%AA%E3%81%97%E3%81%A7%E5%8B%95%E3%81%8Fphp-twitter-library-php-twient%E3%82%92%E5%85%AC%E9%96%8B/
0827nobodyさん2010/01/05(火) 23:37:52ID:???
>>825
GAEにしようとしたんだが、Google App Engine Launcherを起動すると
See the logfire 'C:\〜GoogleAppEngineLauncher.exe.log' for details
というエラーが出るから積んだよ
再インストールしてもエラー中のlogを消してもだめだった
問題は山積みだ…
0828nobodyさん2010/01/05(火) 23:54:54ID:???
logの中身みたの?
0829nobodyさん2010/01/06(水) 01:25:16ID:???
>>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に頼ることにするよ
聞いてくれてありがとう
0830nobodyさん2010/01/06(水) 15:02:29ID:???
オプションのnameがないんじゃね?
0831DAWNTO_Windy-melt ◆Windy/f9HNwg 2010/01/06(水) 15:53:39ID:???
>>824
わざわざありがとうございます。
本格的に設計開始しましたが、あったらうれしい機能など教えていただけると開発が早く進みます
0832nobodyさん2010/01/06(水) 20:41:01ID:???
>>831

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

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

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

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

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

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

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

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

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

を全部消して、function tweetをSDNさんとこのソースに
tweetの引数は$message以外を削除、って感じで行けると思う
もちろん細かいところは適宜修正してくれ
0862nobodyさん2010/01/08(金) 17:57:17ID: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の場所がおかしいとか…?
もう訳わからんよ…細かいところの修正が出来てないからかな。
頭悪くてごめんな。
一回貼ったほうがわかりやすい?
0863nobodyさん2010/01/08(金) 18:02:23ID:???
>>862
見た方が早いことは早いかも
0864nobodyさん2010/01/08(金) 18:13:36ID:???
>>862
あーごめん
$ch = curl_init();
(中略)
curl_close($ch);
は消さなくてもいいや(OAuth認証でTL取得しない場合は)

消した場合(OAuth認証でTLを取得する場合)は
$XML = simplexml_load_string($result);
のところも変えないと駄目
0865nobodyさん2010/01/08(金) 18:32:53ID:voJUVX7V
>>864
お、ごめん長くて貼れなくて苦戦してた…
$XML = simplexml_load_string($result);
の部分なんだけど、ごめんどういじれば良い?
0866nobodyさん2010/01/08(金) 18:44:15ID:???
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);
0867nobodyさん2010/01/08(金) 18:45:34ID:???
うおっと、またミスった
$pcountになってるところは$cntで…orz
0868nobodyさん2010/01/08(金) 20:09:05ID:voJUVX7V
>>867
うわーごめん、何かほんと頭悪いみたい。
TLとかリプライいじってみたけど、返事しないわ…orz
そもそも基本的なこと間違えてる気がしてならない…
ちょっと基本的な事勉強してくるわ、協力してくれてありがと。
0869nobodyさん2010/01/08(金) 23:45:40ID:???
銀次さんのとこの方法は重くなるからcronに向かないな。
さくらで勝手に削除されたのもそのせいだと思う

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

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

しかし、話題性があるから薄っぺらな内容でも
凄い事のようにマスコミが持ち上げてくれる。
0875nobodyさん2010/01/09(土) 00:26:56ID:???
シグネチャ作るときのURLが固定だったのが原因だった
直したらTweetできたやったあああああああ
0876nobodyさん2010/01/09(土) 01:43:50ID:???
>>869
PHPにアクセスするとしょっちゅうタイムアウトエラーが出るんだけど、これもそのせいかな?
そのおかげでcronがちゃんと動いていてもポストされないみたいなんだ
0877nobodyさん2010/01/09(土) 02:05:23ID:???
>>876
869じゃないけどたぶんそのせいだと思う。
cron-jobはただ単に指定したURLを叩くだけだったから、特に削除されるとかないし組み合わせ的には最適だったと思うよ。
0878nobodyさん2010/01/09(土) 04:04:37ID:???
>>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みたいです。
0879nobodyさん2010/01/09(土) 04:05:19ID:???
わあなんだか余計な改行が挟まれてる
見にくくてすいません…
0880nobodyさん2010/01/09(土) 11:14:41ID:???
>>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を書いたほうが楽だし軽くなると思う
0881nobodyさん2010/01/09(土) 12:06:30ID:???
ここの人たちはわかってるんだろうけど、最近は特定ワードを拾ってきて
無差別でフォローしてない相手にもリプライするbotが目に付くようになったね。
ああいうつまんないことで反感買って印象悪くするのは避けたいもんだね。
0882nobodyさん2010/01/09(土) 12:08:43ID:???
プログラミングができなくても〜を参考にbot作ってます。
話しかけられた時、指定した単語が入ってないと「もう一回言って?」みたいな反応させたいんだけど、
こういう時はどうすればよいですか。
0883nobodyさん2010/01/09(土) 12:27:07ID:???
>>882
話しかけられた内容に指定ワードがあるかを検索したらいいだけだと思うが
0884nobodyさん2010/01/09(土) 12:55:12ID:???
>>882
phaさんが設置したbot用掲示板に書いてある
すこしはログ見るとかしてみないか?
08858822010/01/09(土) 12:59:27ID:???
本当だ、ちゃんと見てなかった・・・失礼しました
0886nobodyさん2010/01/09(土) 15:19:11ID:???
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が読み込めてないってことなのかな?
もしかしたら全然見当違いなことしてるかもしれない・・・
0887nobodyさん2010/01/09(土) 15:55:13ID:???
自分宛以外のリプレイで「@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内にあったので、処理を中断してサブルーチンから抜ける
}

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

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

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

<?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);
0892nobodyさん2010/01/09(土) 22:18:02ID:???
>>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){
(省略)
}
0893nobodyさん2010/01/09(土) 22:19:03ID:???
>>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;
}
?>
0894nobodyさん2010/01/09(土) 22:31:57ID:???
>>887
8bitnoteさんとこのスクリプトだと思うけどそこは関係ないよ
その下の
elseif( preg_match("/眠い/",$text)){ //上記で調べた自分へのリプライがなかった場合にこの処理に移る。POST内容に眠いが含まれていたら次の処理に移る
の前に@が含まれるpostを弾く処理を入れればいいはず
08958882010/01/10(日) 01:00:53ID:???
>>891-893
ソースありがとうございます!
891さんのソースをコピペして動かしてみた結果、Arrayという文字だけはPOSTしてくれるようになりました。
もうちょっとどうにかしてこようとおもいます。
ありがとうございました!
0896nobodyさん2010/01/10(日) 01:20:14ID:???
>>894
回答ありがとうございます
このPHPにはbotへの@リプライとTLから特定単語を拾ってリプライする動きを書いてます
@が含まれるpostを弾くと、このbotへのリプライに反応する事ができなくなってしまいます…
また

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

を打ってみたのですがやはりエラーが出ました
0897nobodyさん2010/01/10(日) 01:56:39ID:???
>>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;}
0898nobodyさん2010/01/10(日) 05:42:07ID:???
>>891の通りにやってみたら、PHPにアクセスすると真っ白の画面が出るようになってしまった
エラー表示されないから何が何だか・・・
0899nobodyさん2010/01/10(日) 05:42:42ID:???
>>891
$username = "1111";
$key = "3333";
が何だかわからないんだけど、ごめん参考元?ってなにになるのかな?
0900nobodyさん2010/01/10(日) 10:42:09ID:???
>>899
えっ
0901nobodyさん2010/01/10(日) 12:03:57ID:???
>>899
ごめん$key要らない・・・
自分は複数BOT作ってて複数でも使いまわせるようにしてるんで、その名残だ
要らないところ削除して直したつもりが残ってたみたい
0902nobodyさん2010/01/10(日) 12:17:50ID:???
>>898
>>891のソースにはどこにも出力命令が無いんだから
ブラウザでアクセスして何も表示されないのは当たり前だろ
0903nobodyさん2010/01/10(日) 16:18:50ID:???
>>902
ごめん。真っ白になるだけでポストしないからどこかにエラーが出るはずだと思ったんだけど
さっき確認したら今まで普通に動いていた別のスクリプトでも同じ現象が起こった
そっちは弄ってないから原因は>>891ではないみたい
0904nobodyさん2010/01/10(日) 23:13:36ID:???
自動フォロー返し時にDM送るようにしてるんだけど
たまにフォローだけしてDM送られなかったりフォロー失敗してDMだけ送られたりする
この問題解消するときってどうすりゃいいのかな
0905nobodyさん2010/01/11(月) 17:34:10ID:???
すみません初心者で簡単な質問ですが、分かる方は教えて頂けると助かります…
(例)「おかえり、今日の夕飯は○○ですよ」
という文章で、○○の部分をランダムで変えたいのですがプログラムが分かりません

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

と書いて、

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

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

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

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

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

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

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

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

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

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

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

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

こう二行やるのと

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

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

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

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

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

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

個人的に思うんだが、マルコフ連鎖を使って呟かせるより他の人の過去の呟きを拾ってbotに呟かせたほうがより人間っぽいと思う。まぁ楽しむ目的でbotつくるならマルコフ連鎖でもいいけど。
0991nobodyさん2010/01/18(月) 20:03:50ID:???
そういや次スレはどうするんだ?
0992テンプレ案1(GAEのがj.mpになってるのはURLが長かったから)2010/01/18(月) 21:45:52ID:???
プログラムとかわかりません><
http://twittbot.net/

Perl
http://search.cpan.org/dist/Net-Twitter/

PHP
http://pear.php.net/package/Services_Twitter
http://labs.transrain.net/products/services_twitter/

Ruby
http://twitter4r.rubyforge.org/

Java
http://yusuke.homeip.net/twitter4j/ja/index.html

プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/

cron
http://www.onlinecronjobs.com/
http://www.setcronjob.com/
https://mywebcron-com.loopiasecure.com/
http://cron-job.de/

GoogleAppEngineによるcron
http://code.google.com/intl/ja/appengine/
http://j.mp/861dO8
http://d.hatena.ne.jp/deeeki/20091201/gae_register_account
0993nobodyさん2010/01/18(月) 21:49:46ID:???
お邪魔します。phaさんの配布されている物を使って作成したbotなのですが、
複数件リプライを貰っているのに最新1件のリプライにしか反応(返事を)しない場合はどのような原因が考えられるでしょうか?
ちなみに手動で叩いてみてもやはり最新1件のリプライにしか反応しませんorz
0994nobodyさん2010/01/18(月) 21:52:04ID:???
>>993
そのプログラムのリプライ処理の部分を書いてくれ
0995テンプレ案22010/01/18(月) 21:52:59ID:???
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


他に何かあったら追加ヨロ
0996テンプレ案22010/01/18(月) 21:53:43ID:???
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


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

* * * * * wget /var/www/path/to/aaa.php
とかしてませんか?
0999nobodyさん2010/01/18(月) 23:19:20ID:???
立てた。
http://pc11.2ch.net/test/read.cgi/php/1263824322/
1000nobodyさん2010/01/18(月) 23:22:38ID:???
おまんこ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。