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

【Twitter】 BOT製作支援スレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/27(日) 14:15:59ID:Dz08qoo4
見当たらなかったので立ててみた

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

*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
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
うーん見た感じ\とかエンコードとかは大丈夫みたいなんだが…。でも返信ありがとう。
■ このスレッドは過去ログ倉庫に格納されています