【Twitter】 BOT製作支援スレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/27(日) 14:15:59ID:Dz08qoo4[公式] http://twitter.com/
[Twitter 開発ブログ 日本語版] http://twitterjp.blogspot.com/
*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
0239236
2009/10/28(水) 20:42:37ID:???すみません、『えーーん』や『うーーん』にも応用したくて…
>>237さんの方法で、『えーーん』→『えー』と指定しまうと
『えーー!』等が引っかかってしまいます。
…ので、>>236の正規表現で煮詰まってます;
0240236
2009/10/28(水) 20:47:27ID:???ありがとうございます。
『お(ー)+い』を試してきましたが、スルーされました…。
スクリプト毎に、使える正規表現というのは
限定されているものなのでしょうか?
0244nobodyさん
2009/10/29(木) 05:48:07ID:???phaさんのサンプルのこん(に)?ち[はわ]すらスルーされる始末
正規表現使わなければ普通に動きます
どこに問題あるんでしょうか…
0245nobodyさん
2009/10/29(木) 11:58:27ID:???有料だけどここ使ってる人いる?
0246nobodyさん
2009/10/29(木) 12:21:28ID:???30秒でタイムアウトするって事だろ。
俺ここ使ってるけどたまにタイムアウトするよ。180秒にした方が無難なんだけど一回に? 0,0004はちょっとイタイ。
0247nobodyさん
2009/10/29(木) 16:55:26ID:???なにがタイムアウトしてそれがどう影響するのか
わからない程度の素人だけど180秒にしたほうが
いいとわかっただけでありがたい
一度試用してみるよーありがとう
0248nobodyさん
2009/10/29(木) 20:29:41ID:???自己解決しました。普通にver1.2つかってたよ、ごめんなさい。
正規表現難しいね
聞(こえ|いて)[んる](の)??
に反応してくんないんだけど、どっか間違ってるかな
0249nobodyさん
2009/10/30(金) 19:30:09ID:???「」の中だけとか
0250nobodyさん
2009/10/30(金) 19:44:57ID:???0251nobodyさん
2009/10/30(金) 20:46:18ID:???0252nobodyさん
2009/10/31(土) 02:12:59ID:???ソースほぼ丸々コピーでやってるのにエラー出てお手上げ状態だよ…
ソース公開してる記事のコメント見るに同じような状況の人もいるっぽいけど
解決してなくてどうしようもねえ
0253nobodyさん
2009/10/31(土) 02:15:45ID:???コピーした他人の奴をぐぐって動くように編集するのが難しいのかよ
まぁそれも力になるさ
0255nobodyさん
2009/11/01(日) 00:14:13ID:???公式の検索使った方がいいのかなぁ…。
0256nobodyさん
2009/11/01(日) 20:41:15ID:???0257nobodyさん
2009/11/02(月) 14:39:36ID:???0258nobodyさん
2009/11/02(月) 22:50:28ID:???無限ループに陥る可能性ある…よな?これ。
APIの回数制限とかあるけども。
0259nobodyさん
2009/11/03(火) 01:01:47ID:???キャラクター系botだとあるある。自分もそれが怖いのでおはようやおやすみのような日常会話系単語にリプライさせられないでいる。
リプライした相手を記録しておいて、投稿前に照合するくらいの対策しか思いつかない。(記録は一日一回クリアするってことで)
botとメッセージをやり取りしないbotなら気にしなくてもいいんだろうけど、自分が作ってるのがキャラ系botなんで、同じキャラbot同士での会話もさせたいんだ。
いろいろやってるうちに好きなだけcron回したくて自分専用のサーバ欲しくなるw
0260nobodyさん
2009/11/03(火) 02:51:05ID:???botからのpostは無視するようにすればいいんじゃないかなぁ
sourceがAPIとかなら無視させるとか botじゃなくてもAPIからの投稿だとスルーしちゃうけど
もしくはbotによくあるスクリーンネーム語尾が〜botなら無視させるとか… これも普通の人が〜botってスクリーンネームだとスルーしちゃうのが難点だな
0261nobodyさん
2009/11/03(火) 05:40:38ID:???昼過ぎにおはようって言うと、「寝坊?」って返すみたいなの
0263nobodyさん
2009/11/03(火) 14:32:48ID:???これって可能?
0265sage
2009/11/04(水) 00:25:58ID:oJ2uxGZIURLコピペで貼ってるから間違いないのに不完全なURLって出る。
時間あけて設定画面開いたら次は重すぎるって出ました。
ファイルが重いのは理解できるがステータス変わるの何でですか?
調べてみたけど分からなかったので分かる人いたら教えてください
0266nobodyさん
2009/11/04(水) 01:01:25ID:???ありがとう!
初心者ながら色々試してみたんだけど、どうにも無視されたり、他の時間帯のこと言ったりする…
実際発言のところに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:???なにこれ?
0268nobodyさん
2009/11/04(水) 01:08:25ID:???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:???そういう感じにフォロワーが色々いじってパラメータ変動させられるbotは面白いかもね。
ただしいたずらで無茶苦茶機嫌悪くさせたり病気にもできそうなのと
何よりその手の育成システムはアイデアとプログラムが割りと手間だな。
0272nobodyさん
2009/11/04(水) 01:44:35ID:???えっ!?
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:???ありがとうございます!正解は==なんですね…
早速=の数を直してみたんですが、やっぱり時間設定に反応してくれません。
if($plist == $mes['night']){はもちろん、if (($now_g == '3') or ($now_g == '4') ){ でも試してみたりしたのですが、完全にスルーです。
$now_g = date('G');も埋め込んであるんですが…なんで反応してくれないのかさっぱりです…
0275nobodyさん
2009/11/04(水) 04:55:42ID:???0276274
2009/11/04(水) 07:17:07ID:???swichはどうやっても反応しないので、諦めていろいろ試行錯誤してたらやっと反応してくれた!!
if($plist == $mes['night']){ の代わりに if(($now_g >= '10') && ($now_g <= '17')){ を個別に指定してみたらできましたー!
結局反応しなかった理由はよくわかんないけど、<= じゃなくて < になってたのも原因のひとつみたたいでした。
アドバイスがなかったら絶対途中でめげてた。聞いてくれた方ありがとうございました!
0277nobodyさん
2009/11/04(水) 07:54:05ID:???多様性とか面白さとかのアイデア方面がなかなかいいのが思いつかないな。
0278nobodyさん
2009/11/06(金) 18:16:08ID:???そうなんだよなあ。ヘタに@に対して定型文返してくる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:???正規表現でエラー出るってことはそーゆーことじゃないの。
ていうかああしたとかこうしたとか素人が言うよりは
そのいじった行をそのままコピペしたほうがわかる。
0281nobodyさん
2009/11/07(土) 05:04:43ID:???ちゃんとコピペできていないか、実行側にちゃんと送信できていないに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:???0284nobodyさん
2009/11/07(土) 18:37:38ID:???>>280,281
ご指摘頂いた箇所を見てみたんですが、コメントアウトの//もあってたし
エラーの出てた行はいじってないしで??となっていたんですが
@PAGEのファイルの編集画面で見てみるとUTF-8で転送されてなかったみたいで
何ヵ所か文字化けしてしまっていたのが原因だった様です…すみません
その辺設定出来るエディタ使ってたのに何故という感じですが
(miで編集、Fetchで転送)
とりあえず、なんとかなりそうです
ありがとうございました!
規制中でケータイからなので読み辛かったら申し訳ないです
0285nobodyさん
2009/11/08(日) 19:21:21ID:???phaさんのスクリプト使って出来る?
0287nobodyさん
2009/11/08(日) 23:02:46ID:???一部分だけ相手の発言を引用するというか
0288nobodyさん
2009/11/08(日) 23:07:58ID:???0289nobodyさん
2009/11/08(日) 23:08:01ID:???@bot AAAって言って
@botの発言:
@aaa AAA
ってこと?
0290nobodyさん
2009/11/08(日) 23:30:52ID:???"復唱"=> array(
"{echo}"
),
って入れといて、reply_random.php側で
reply_pattern.phpから返答文字列を取得してからtwitterに投稿するまでの間の処理にswitch〜case(綴り合ってる?)か何か仕込んで、
もし返答文が{echo}だったらという条件判断をさせて、
そこで相手からのリプライの「から」までの間を抜き出してその前後に「復唱します、(抜き出した言葉)ですね」みたいに体裁整えて@とかidとかくっつけて返信、になるかなー
ややこしいかもしれないけどできなくはないはず
携帯からなんでコレが限界
0291nobodyさん
2009/11/08(日) 23:35:44ID:???ごめん忘れてた
「○○」を復唱して ←こんな形式でリプしてもらうとして、ね
鍵括弧でくくってる事と復唱って言葉がポイントってことで
0293nobodyさん
2009/11/09(月) 00:52:01ID:???0294nobodyさん
2009/11/09(月) 17:18:21ID:???調べてみても、使い方のヒントになるものは何も…
携帯からなのでURL貼れなくて申し訳ない。
0295nobodyさん
2009/11/09(月) 17:25:06ID:???0296nobodyさん
2009/11/09(月) 18:29:28ID:???なんでそこの作者さんがサポートをやめたのか書いてあるだろ。もう一回読んで来い。
phaさんとこ見てても思うけどマジで初心者多いな。
ほぼ全レスのphaさんすげえ。
0298nobodyさん
2009/11/09(月) 19:54:17ID:???ユーザIDとパスワード以外弄ってないのに動作しないんだけど
質問受け付けてないからどうにもならんかった
0299nobodyさん
2009/11/09(月) 20:41:52ID:???>>298
出たエラーでググったりすればなんとなく見えてくるんじゃないか?
0300nobodyさん
2009/11/09(月) 20:48:26ID:???それって
ttp://8bitnote.sblo.jp/article/32680372.html
で配布されてるnanoka.phpのことか?
ざっと読んでみたけどServices_Twitterも入れないと動かないよこれ
0301nobodyさん
2009/11/09(月) 21:26:11ID:???txtには何を入れたらいいのかとか…
試しにサーバーに上げてPHPの方に書いたキーワードをpostしてから、サーバーにアクセスしてみたんだけど空リプライが来るだけ。
サーバーにアクセスしなければ何も動きはないです。
0302nobodyさん
2009/11/09(月) 22:20:34ID:???0304nobodyさん
2009/11/09(月) 23:37:37ID:???フォロワー300で、最低でも5分毎に実行させたいんだが…
0305nobodyさん
2009/11/10(火) 00:03:35ID:???どうせ金払うならちょっといいレンタルサーバーでも借りた方が良くないか。
月500〜1000円代からでもcronやPHP5やMySQLが使えるところはあるわけだし。
とはいえサイト持ってないなら宝の持ち腐れだろうし、やっぱ人によるかも。
逆に言えばサイト運営してて、尚且つ何か高度なもん設置したいものがあるのなら、
ちょっといいサーバー借りた方がトータルで見ればいい気はする。
0306nobodyさん
2009/11/10(火) 00:24:51ID:???自宅に24時間起動&ネット接続させられるマシンがあるならそれでスクリプトを動かしてもいいかも
自分はcygwin+cron+w3mでbot動かしてる
0307304
2009/11/10(火) 00:56:46ID:???まさにサイト持ってない持ち腐れする人種なんで、レンタルサーバーは悩んでたんだ
自宅PCも不安定だし、コーヒー代我慢してWebcronのお世話になることにするよ
月額が不安だが…
0308nobodyさん
2009/11/10(火) 00:59:51ID:???PHPスレなりその初心者質問スレなり見たほうがいいと思うんだ。
サポセンとは違うんだし。
0310nobodyさん
2009/11/10(火) 03:05:08ID:???ありがとう。
上げなおしたら普通に動きました。
0311nobodyさん
2009/11/10(火) 14:50:36ID:???お試し期間で様子見してみたら?
お試し中でも使用量出るし、一週間で消費したクレジット*4すれば大体の目安はつくと思う
0313304
2009/11/11(水) 20:56:33ID:???150ならサーバー借りるより全然お得だな
0314nobodyさん
2009/11/11(水) 23:48:17ID:???0315nobodyさん
2009/11/12(木) 07:18:55ID:???同じ事気になってた。
こっちはお試し期間中に色々試す暇がなくてどうせ安いからとクレカで購入してみたが
消費量チェックする度にチマチマ増えてるんで何か焦る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:???これってソース丸コピペしてIDとパスワード変えるだけじゃだめ?
あとできればキーワード全部じゃなくて1番目だけを取得してポストしたい
0319nobodyさん
2009/11/15(日) 10:40:05ID:???・HTTP_Clientが必要
・for文消して$iを固定で1にする
てか聞きたいならやってみて出たエラーくらい書きなさいな
0320nobodyさん
2009/11/15(日) 20:17:39ID:???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:???0323nobodyさん
2009/11/15(日) 23:56:13ID:???自分ならこうする、という参考意見だと思って読んでね
前提条件として
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:???0326nobodyさん
2009/11/16(月) 11:34:55ID:???0327320
2009/11/16(月) 18:31:33ID:???自分のやりたい事は>>325の方法で出来そうなので、
試してみたいと思います。有り難うございました!
0328nobodyさん
2009/11/16(月) 19:25:29ID:???とりあえずHTTP_ClientっていうのをDLしてServices_Twitterと同じ要領でbotのサーバーに入れてみた
で、>>318をコピペして動かそうとしたがエラー出ないしpostもされなかった
0329nobodyさん
2009/11/16(月) 20:22:18ID:???0331nobodyさん
2009/11/17(火) 10:06:08ID:???0332nobodyさん
2009/11/17(火) 10:24:17ID:???0333nobodyさん
2009/11/17(火) 17:07:00ID:???どう書き変えたらいいんでしょうか?
ソースはこちらを使わせて頂こうと思っています
tp://dream-aquarium.net/twitter/sample/source.php?twetterFollow.php
よろしくお願いします
0334nobodyさん
2009/11/17(火) 19:50:15ID:???http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0update
0335nobodyさん
2009/11/19(木) 21:13:08ID:???例えば喜のPostのときは喜んだアイコン、怒のPostのときは怒ったアイコンって感じで
0336nobodyさん
2009/11/19(木) 21:37:00ID:???変えるのはやってできないことはないと思うけど、それだと喜のあとに怒のpostしたら結局怒アイコンになるんじゃ
■ このスレッドは過去ログ倉庫に格納されています