【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:???0003nobodyさん
2009/09/27(日) 21:25:25ID:???たとえば通常postで「おはよう」「おやすみ」(@付のpostは反応しない)とあった場合に、
こちらからリプライをするものです。
特定の単語をリプライされた場合にその単語用の文章を返せるリプライなら
知っているので、もし必要でしたら貼ります。
0004nobodyさん
2009/09/27(日) 22:14:34ID:???0005nobodyさん
2009/09/27(日) 23:12:14ID:???ややこしくてすみません
後半は、相手から@でリプライされた場合に返すものです。
前半の自分の求めているソースは、
自分にリプライが来ない場合(例えば普通に「おきた、おはよう」という独り言)でも
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を取得して同様の処理すればいいんでない?
0009nobodyさん
2009/09/28(月) 00:54:52ID:???0011nobodyさん
2009/09/28(月) 01:43:03ID:???0013nobodyさん
2009/09/28(月) 03:40:31ID:???キーワードは言っておいてURLは書けないとか
意味が分からない。
0015nobodyさん
2009/09/29(火) 22:30:50ID:???0016nobodyさん
2009/09/30(水) 16:17:35ID:???というサイト様でbot設置は簡単にできたのですが
ランダムに呟き・返事をするのではなく、
・時間帯に合わせて発言する
・特定の語句に対して返事をする(会話が成り立つ)
ようにするにはどうしたらいいでしょうか?
0017nobodyさん
2009/09/30(水) 19:04:52ID:???> お前は自分がよければそれでいいのか?
どんな迷惑がかかるの?
2ch って何か問題なの?
0020nobodyさん
2009/10/01(木) 14:00:17ID:???それと2chにURLを貼られるのが嫌な人はたくさんいるので、
なるべくURLは出さずにヒント通り検索してみてください。
『Twitter BOT 作り方』とかで結構出ます。
>>16
サイト名を書かかれるのもいやがる人もいるんでアレなんですが
「銀さんのbot 〜不完全〜」で検索してください
0021nobodyさん
2009/10/01(木) 14:25:41ID:???>>16と同じところで躓いてそこも見たんだけど
そのサイトで公開してるやり方を選択するってことは
>>16のサイトで配布してるphpは使わないってこと?
0023nobodyさん
2009/10/01(木) 21:40:05ID:???バカ?それとも釣りか?
ちょっと前のレスも見れないんだな。
自分が管理人になって2chの知らないスレにアドレス貼られて影でアレコレ言われてみれば、いい気分しないの自覚するんじゃないの?w
0024nobodyさん
2009/10/02(金) 16:27:48ID:???cronを使用できないサーバーを使ってるんですが
ttp://www.webcron.org/index.php
ここって期間過ぎたら有料になりますよね?
あと、ここも試してみたんですがなんか実行されない(twitterに発言が行かない)んですよね・・・
ttp://www.cron-job.org/
やはりcronを使用できるサーバに乗り換えるべきでしょうか、
他に良い方法があったらご教授お願いします
0026nobodyさん
2009/10/02(金) 23:10:06ID:???0027nobodyさん
2009/10/08(木) 03:05:53ID:???リンク禁止とか書かれてるならともかく、プログラム関連の情報ブログなんかはむしろ公開ありありだと思うんだけど
まあそれは置いといて、喧嘩腰暴言吐く人はどのスレでもいらんよね。
0028nobodyさん
2009/10/09(金) 14:18:08ID:???直リンでなくともurl貼らないで検索ヒントのワンクッション置くのは善意だろ。
その善意が誰に向けられてるのかもわからずしつこく粘着とは悪意そのもの。無益だから自重してね
0029nobodyさん
2009/10/09(金) 14:20:44ID:???0030nobodyさん
2009/10/09(金) 18:41:44ID:???それかbotmaker使えばいいんじゃないの?
プログラム面自分で触る気ないならそっちのが簡単じゃない?
0031nobodyさん
2009/10/09(金) 19:21:36ID:???BASARAのbotが理想です
銀さんのbot見たけどよくわかりません
0037nobodyさん
2009/10/10(土) 03:13:49ID:???0038nobodyさん
2009/10/10(土) 03:43:47ID:???0039nobodyさん
2009/10/10(土) 05:52:06ID:WvW2Ckccは結構頻繁に動かなくなってる?
0040nobodyさん
2009/10/10(土) 19:53:02ID:???そこつかってるけど、ときどき定期発言抜けるねー
ときどきジョブが自動でneinになってるときがあってびっくりするよ
0041nobodyさん
2009/10/10(土) 20:00:16ID:???0042nobodyさん
2009/10/10(土) 21:08:21ID:???0043nobodyさん
2009/10/10(土) 22:07:01ID:???フォローし続けても飽きがこないbotを作るのは難しい
0044nobodyさん
2009/10/12(月) 10:58:32ID:???単にしゃべらせたいってだけなら上のほうの検索ワードのやつでいいはずだけどしゃべったらすぐ飽きるよな。
0045nobodyさん
2009/10/14(水) 02:56:05ID:???解説しているサイトとかありませんかね
0046nobodyさん
2009/10/14(水) 03:07:56ID:???0047nobodyさん
2009/10/14(水) 09:42:46ID:???マルコフ連鎖について?
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:???フォロワーの名前ひろったり過去発言参照したり色々いじろうとすると物足りないな。
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:???updateのAPIに投げるデータにin_reply_to_status_id付けて。
0053nobodyさん
2009/10/16(金) 10:14:42ID:???プログラミング系の板に変な空気を持ち込まないで欲しいwww
0054nobodyさん
2009/10/16(金) 13:15:38ID:???0056nobodyさん
2009/10/16(金) 21:10:04ID:???corn-job.comじゃ駄目なのか?
レンタル鯖は大抵1時間に1アクセスくらしかできんぞ
あと誰かMステ出演者botつくってくれ
0057nobodyさん
2009/10/17(土) 16:31:35ID:???ここのスクリプトでリプライ作ったんだけど@を拾ってくれない
コメントで同じこと言ってる人いるけどidも間違ってないしTLの発言は拾ってくるのに
ttp://pha22.net/text/twitterbot.html
こっちのランダムリプライスクリプトは問題なく拾ってくれるんだが
0058nobodyさん
2009/10/17(土) 16:36:16ID:???0059nobodyさん
2009/10/17(土) 16:52:44ID:???こっちのスクリプトで特定のワードに反応できるようにカスタマイズできれば一番いいんだけど
素人判断で弄ってエラーで動かなくなった
いい方法ないかね
0060nobodyさん
2009/10/17(土) 16:59:12ID:???0061nobodyさん
2009/10/17(土) 17:08:52ID:???twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
0063nobodyさん
2009/10/17(土) 19:23:27ID:???形態素解析が使えないから、単語単位での分け方け方じゃなくて、
スペース、句読点くぎりしかできなかったはずだけど、違うのかな。
yahoo apiを使えばできるの?
0064nobodyさん
2009/10/17(土) 20:51:02ID:???twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
0066nobodyさん
2009/10/17(土) 22:05:52ID:???定期つぶやきについては最初はうまくできたのに、
リプライ機能もつけようとしてtxtファイルを作ったら、
リプライはおろか定期つぶやきもしてくれなくなった…
手動でphp実行で投稿しようとしてもだめ
txtファイルを消してもだめ
どなたか知恵下さい...
0067nobodyさん
2009/10/18(日) 00:36:54ID:???それでもダメなら作り直した方が楽な気がする。
0068nobodyさん
2009/10/18(日) 00:44:50ID:???らしいね。
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
006966
2009/10/18(日) 00:50:08ID:???うわぁありがとう だからか!すごい納得いった。
テストのつもりだったから
発言4種類くらいで6分間隔くらいで喋らせようとしてたわ。
ほんとサンクスです!! もうちょっと頑張ってみる
0070nobodyさん
2009/10/18(日) 00:58:06ID:???0071nobodyさん
2009/10/18(日) 00:59:39ID:???というのは間違いみたい。数日経っても動かないボットもいる。
テスト用に作った発言の種類が3つのボットだけど。
0072nobodyさん
2009/10/18(日) 01:18:12ID:???その中に同じ内容が含まれていたら違う発言をpostするようにしたら何とか回避
できるかな。
発言を11個以上用意しておく必要があるけれど。
007366
2009/10/18(日) 01:28:40ID:???やっぱりセリフの重複が問題だったみたい。
ここのスレなかったら多分諦めてたわ、ありがとう助かった!^▽^
0075nobodyさん
2009/10/18(日) 15:22:23ID:???この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:???0078nobodyさん
2009/10/18(日) 19:07:59ID:???http://d.hatena.ne.jp/tomoaki96/20091014#p1
0079nobodyさん
2009/10/18(日) 19:22:35ID:???0080nobodyさん
2009/10/19(月) 00:15:54ID:slCeJxW20081nobodyさん
2009/10/19(月) 00:38:11ID:???プログラムは基本的に動くんだけど、
たまに「@ID」のみの空白リプライ返してるときがある。
単に負荷がかかりすぎ、ってことなのかな?
同じ症状出た人いたら教えて欲しい……。
0082nobodyさん
2009/10/19(月) 02:47:24ID:???あとは、\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:???どっか2分間隔でcron使える鯖ないかな
0088nobodyさん
2009/10/19(月) 20:17:59ID:???$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:???elseif( preg_match("/(.+)(なのか|だったのか)/",$text,$match)){ {
$nanoka = $match[1];
0091nobodyさん
2009/10/19(月) 20:29:06ID:???あと
>$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:???twittanの管理人?がおかしいので、twittanにDM投げるだけのBotつくってくだしあ><;
0093nobodyさん
2009/10/19(月) 20:40:27ID:???0095nobodyさん
2009/10/19(月) 21:40:31ID:???間隔長い方がいいのか?関係あんのかな
0097nobodyさん
2009/10/19(月) 22:56:38ID:???cron使えるとこで
0098nobodyさん
2009/10/19(月) 23:11:03ID:???0099nobodyさん
2009/10/19(月) 23:22:10ID:???0100nobodyさん
2009/10/19(月) 23:26:10ID:???鯖である必要すらない。
0102nobodyさん
2009/10/20(火) 00:42:14ID:???ドイツのサイト使ってるけどここだめなのか
0103nobodyさん
2009/10/20(火) 01:12:52ID:???0104nobodyさん
2009/10/20(火) 02:01:10ID:???特定の単語に特定の単語を返す機能は次のバージョンアップで付ける予定です。
もうちょっと待ってくださいー。
0105nobodyさん
2009/10/20(火) 02:45:47ID:???例のドイツのサイト、多分今すごく負荷かかってるんじゃないか?
良くも悪くも、かなり認知度高まってきた感じだし。
0107nobodyさん
2009/10/20(火) 17:59:03ID:???時間になったら寝たり、時間帯のつぶやきを組み合わせようとして
途中までうまくいってたんだけど
文字化けしちゃってうまく出来なかった・・・。
誰かやってうまく行った人居ませんか?
0111nobodyさん
2009/10/20(火) 19:50:08ID:???正直ナメてたわ誰か助けて
0112nobodyさん
2009/10/20(火) 20:38:42ID:???もしくは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:???それが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とか
やれば一時間に複数回動かすことが出来るっぽい
で「保存」して反映されれば動くっと。
説明ヘタクソでごめん・・・これで解るといいんだけど・・・
長々と失礼しました。
0116nobodyさん
2009/10/20(火) 21:14:40ID:???×COREジョブ ○CRONジョブ
ごめん。
自分はテキストエディタTeraPadで「ファイル」→「文字/改行コード指定保存」で指定出来たよ
何のテキストエディタでcron1.shを作るかによって変わると思うから
使ってるテキストエディタで改行コードについてググればいいんじゃないかな?
0117nobodyさん
2009/10/20(火) 21:41:44ID:???dクス
とりあえず言われた通りに設置してみた
相変わらずcron.shはNot Foundになるが…大丈夫なのか
0118nobodyさん
2009/10/20(火) 21:58:03ID:???ファイルが無いって意味じゃないっけ?
ファイルのURL間違えてない?
0119nobodyさん
2009/10/20(火) 22:21:59ID:???来ないということは実行されてないってことなのか
0120nobodyさん
2009/10/20(火) 22:23:37ID:???僕は使ってるけど来てないな。設定によるのかもしれないが
0121nobodyさん
2009/10/20(火) 22:40:53ID:???こんだけ丁寧に教えてもらったのに申し訳ない…
手動ではちゃんと動くからcronの設定が間違ってるんだろうけど
0122nobodyさん
2009/10/20(火) 23:49:43ID:???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:???2つBOT置いてるのに片方が反応しても片方が一日沈黙している。
別鯖探してるけれどなかなかいいのがないなぁ。
改変もエラーばかりだし、なんでBOT作ったのか自分でもわかんなくなってきたよ
いや、でも負けないけどさ。
0124nobodyさん
2009/10/21(水) 08:57:38ID:???リプライに対する反応語句を増やすにはどこを増やしていじればよいのですか?
if構文から見て自分なりに増やしても、反応すらしてくれません。
0125nobodyさん
2009/10/21(水) 09:25:24ID:???自鯖?
cronでこけるときって文字エンコードがらみが経験上多い。
普通にコマンドラインで動かすと動くんだけど、cronで動かないとか。
print文とかあったらコメントアウトしてみるとか
レンタル鯖でcronはあきらめたほうがいい
0126123
2009/10/21(水) 10:15:59ID:???ありがとー 自鯖じゃなくて、銀さんのところで見た@PAGES使ってる。
いかんせん初心者@勉強中なもんで、ソースはいじらずに使ってるだけなんだけど
昨日くらいからcron-jobが全く動かなくなってしまってる。
超過エラーは出ててもそれまでは動いてたんで、元鯖が不調なせいかなと思ってた。
手動ならおkぽいから、phpは平気(当然だが)なんだけどね。
>レンタル鯖でcronはあきらめたほうがいい
あー…もう素直にBOT手放すしかないのかなあ…PHP楽しいのに。
0127nobodyさん
2009/10/21(水) 10:36:05ID:???他にcron使える手段が自分にはないから仕方ないけど
ときどき実行に失敗するのは我慢できるが
勝手にアクティブ設定が無効になるのは勘弁してほしい
0128nobodyさん
2009/10/21(水) 11:34:03ID:???0129nobodyさん
2009/10/21(水) 11:38:32ID:???webcron.orgも昔は無料だったんだけど、無料である程度人が集まった時点で有料化された。
なのでそのうちcron-job.orgもそのうち有料化されて、そしたら動作も安定するんじゃないかと思ってる
0130nobodyさん
2009/10/21(水) 11:58:44ID:???玄人から出るみたいだし
0131nobodyさん
2009/10/21(水) 19:56:40ID:???0133nobodyさん
2009/10/21(水) 20:43:51ID:???今GAEが対応してる言語ってpythonかjavaだけじゃない?
php対応してたら使いたいけどなー
>>>79>>87>>95
>googleappengine使えば、好きなだけcron設定できるよ
0134nobodyさん
2009/10/21(水) 21:23:16ID:???0135nobodyさん
2009/10/21(水) 21:26:06ID:???0136nobodyさん
2009/10/21(水) 23:03:06ID:???立ち上げっぱなしになるのがネックだけど
0137nobodyさん
2009/10/22(木) 00:00:16ID:???プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/text/twitterbot.html
少しバージョンアップしました。
特定の単語に特定の単語を返す機能と、現在の時間を組み込める機能を付けました。
よかったら試してみてくださいー
0142nobodyさん
2009/10/22(木) 14:33:42ID:???0145nobodyさん
2009/10/22(木) 18:32:14ID:???0146nobodyさん
2009/10/22(木) 19:04:13ID:???0147nobodyさん
2009/10/22(木) 19:14:00ID:???なんかエラー吐くんだけどどこに置けば?
0148nobodyさん
2009/10/22(木) 19:37:46ID:???0153nobodyさん
2009/10/23(金) 00:20:42ID:???反応が全くない。TL上のワードを拾うわけじゃないんですよね?
普通に@無視される…
まぁ、@つけても無視されるんですが。おやすみ入れてもスルー。
0154nobodyさん
2009/10/23(金) 01:31:51ID:???本当にありがとうございますー!
今まで特定の語句への返信は、
phaさんのを参考にして作ったという某ブログのスクリプトを使っていたんですが
こちらの方がすっきりしていてサイズが小さく済む+追加しやすいのでこちらに変えました
定期ランダムポスト+特定の語句へのリプライはphaさんのスクリプト
TLから特定の語句を拾ってのリプライは某ブログのスクリプトという
合わせ技でもなんとか動いてます
こんなに使いやすいスクリプトを作って下さり、本当にありがとうございました
0155nobodyさん
2009/10/23(金) 07:18:12ID:???構文を追加したらRT対策が解除される、ということは不可能でしょうか?
.@での挨拶が多いので対応出来なくて…
0156nobodyさん
2009/10/23(金) 12:22:52ID:???0157nobodyさん
2009/10/23(金) 12:44:10ID:???自分の発言にキーワードがあった場合やリプライ時でも返してしまう
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:???datファイルをつくってそこに最新のTLを蓄積
$host = "http://twitter.com/statuses/friends_timeline.xml";
ってやったほうがいいかも
0160nobodyさん
2009/10/23(金) 14:26:03ID:???全然投稿で着てないわけじゃないんでしょ?
だったらやっぱり重複制限に引っ掛かってるのかもしれないから
適当にtxtファイルの中身増やしてテストしてみたら?
0161nobodyさん
2009/10/23(金) 16:46:40ID:???0162nobodyさん
2009/10/23(金) 16:49:29ID:???0163nobodyさん
2009/10/23(金) 17:44:36ID:???アレどっかにつんであるはずだからさがして
twitterのbotで発言できるようにしてみるか
0164nobodyさん
2009/10/23(金) 20:39:31ID:???他にもこういうひといない?
0165nobodyさん
2009/10/23(金) 22:33:51ID:???これって連投すると規制されるのか?
0166nobodyさん
2009/10/23(金) 23:13:23ID:???・2時間で125以上ポスト出来ない(というメッセージが出たことある)
投稿規制はこの二つだったはず。後者はちょっと曖昧かも。
0167nobodyさん
2009/10/24(土) 00:40:33ID:???定期postの間隔がよっぽど短いとか
リプライ反応する間隔が2分とかで
毎度数十件のpostでもしなきゃされないんじゃね
0168nobodyさん
2009/10/24(土) 00:53:48ID:???cron-job安定しないんだよなー
それとも2分じゃなくて4〜6分間隔くらいにしたらまだましかね?
0169nobodyさん
2009/10/24(土) 01:14:32ID:???80code.com安定してるよー。現在は新規受付停止中だけど。
さくらのスタンダードとエックスサーバーもcron可だったと思うが、使った事無いので動作については分からん
0171nobodyさん
2009/10/24(土) 03:16:09ID:???なぜか同じ文字列を見つけてくれない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:???上でググるアプ使ってる人はどうやってるの?
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:???上の人じゃないけど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のソースくれー!
バカなのは承知してるし勉強もしてるんだー
0181nobodyさん
2009/10/24(土) 14:40:42ID:???IDとパス以外変更してないのになにこれ?
0182nobodyさん
2009/10/24(土) 15:01:23ID:???0184nobodyさん
2009/10/24(土) 16:31:39ID:???1〜2回うまく行ったけどあとはさっぱり
何か考えられる原因があったらご教授願います
0185184
2009/10/24(土) 16:56:22ID:???@ユーザー名の後のスペースが全角になっていました…orz
お恥ずかしい限りですがご報告だけ。
0187nobodyさん
2009/10/25(日) 00:51:07ID:???あれすごい
0188nobodyさん
2009/10/25(日) 11:11:20ID:???これみたいに一部分だけをランダムに組み替えて発言させるにはどうしたらいいの?
0189nobodyさん
2009/10/25(日) 11:22:48ID:QovXst2Y上記のように、特定の言葉(この場合「商店街」)がつぶやかれたものを検索して
自動的にRTするようなBOTの作り方をご存じの方、ご教示願います。
0191nobodyさん
2009/10/25(日) 17:18:48ID:???そんな高度な技術でもないだろ、
とりあえずphaさんのスクリプト例に取るとpost_random.phpのテキストファイルの内容を一行ずつ読み込んでランダムに一つ選択するところと
reply_random.phpのテキストファイル中の{name}を置き換えるところを応用してくっつければ出来る。スクリプト長くなるけど。
0192nobodyさん
2009/10/25(日) 17:45:15ID:???文頭においてPostしてるだけになるんだけど
ちゃんとしたリプライ送るようにするにはどうすればいい?
0193nobodyさん
2009/10/25(日) 18:05:57ID:???"おはよ"と"オハヨ"のどちらにも対応させる(1セットで)には
どうすればいいのでしょうか?
↓な感じにしたいんですが
"おはよ|オハヨ"=> array(
"おはよう",
"おはよ!",
),
0195nobodyさん
2009/10/25(日) 20:20:59ID:???FTPでアスキーモードで転送できてなくて改行が変になってるのかも
FTPでアスキーモードを指定、とやってみたらどうかなあ
わかんないけど
0196nobodyさん
2009/10/25(日) 21:19:37ID:???DSOで。
0198nobodyさん
2009/10/26(月) 02:00:49ID:???0199nobodyさん
2009/10/26(月) 03:07:52ID:???@付きステータスのアップデート時に、in_reply_to_status_id を付ける。
詳しくはAPI仕様書を読んでね。
>>198
適当な間隔でフォロワーやDMのリストを取得して処理すればいい。
API制限もあるし、1度処理したらファイルに記録しておく必要があると思う。
メール通知を利用するって手もありそうだけど、
メールが来ないことが結構あるような・・・・。
0200nobodyさん
2009/10/26(月) 18:23:57ID:???仕様書読みながら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:???特定のつぶやきを検索するのには検索用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:???自動リムーブだけど1日に1回、friends/idsとfollowers/idsの差分とって処理してる。
フォローも似たような案配でいけるんじゃない?
>199
in_reply_to_status_idって返信先ステータスのIDを指定するでいいんだよね?
送出前のヘッダを出力してみるとin_reply_to_status_idの指定がちゃんとしてあるんだけど、
レスポンスみると無視されてるみたいでハマってるんだ
0203200
2009/10/26(月) 18:36:56ID:???似たような事してる人がいた!
自分はこう書き換えした
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:???あいさつをちゃんとしている人(Replyでおはようとか)にはやさしくなっていくとか…
0205nobodyさん
2009/10/26(月) 19:47:55ID:???0206nobodyさん
2009/10/26(月) 20:33:51ID:???おお、助かった!ちょっとやってみ…たらできんかった
エラー起こってないから単にin_reply_to_status_idが取得できてないだけなんかな
0207nobodyさん
2009/10/26(月) 20:39:34ID:???0210nobodyさん
2009/10/27(火) 00:08:03ID:???0211nobodyさん
2009/10/27(火) 00:34:10ID:???0212nobodyさん
2009/10/27(火) 00:36:04ID:???これの場合
$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:???それを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:???ごめん>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:???0216nobodyさん
2009/10/27(火) 15:13:33ID:???通常のリプライなしにしたいんだけどできる?例えば「おはよう」にしか反応しないとか。
0218nobodyさん
2009/10/27(火) 17:29:00ID:???214氏が指摘している通り、わざわざpreg_matchを使う必要が元々無いよ。
翻訳機能のソース以前に、自前で自然言語の辞書を持つ事に結構な
リソースが必要なので、大抵は他を呼び出してると思うんだけど。
「翻訳 API」とかで検索すれば結構あるので、それを使うのが手っ取り早い。
特定の単語しか翻訳しない仕様なら、それこそ鸚鵡返しbotで十分だろうし。
0220nobodyさん
2009/10/27(火) 19:28:32ID:???なぜかいきなりエラーになったみたい。
発言はするんだけどリプライしなくなったっぽい。
reply_random.php にアクセスすると
Parse error: syntax error, unexpected '{', expecting ')' in /home/atumari.net/pp259583/public_html/reply_pattern.php on line 181
というのが出るんだけど、これって一体なに?
どこが原因でエラーになってるのかさっぱりわからない…
0223nobodyさん
2009/10/27(火) 22:49:08ID:???誰か教えてくれ
0224nobodyさん
2009/10/27(火) 23:25:26ID:???http://pha22.net/text/twitterbot.html
0225224=@pha
2009/10/27(火) 23:29:15ID:???Services/Twitter/Connector.phpの95行目でリクエストを組み立てるときに
$body .= '&';
ってやってるのが原因だった
$body .= '&';
に変えたらできるようになった。
他にも特定の単語に反応するときに正規表現を使えるようにもしました。
0227nobodyさん
2009/10/28(水) 00:02:18ID:???おつかれさまです。
1つお伺いしたいのですが、バージョンアップをする場合は
tw.txt以外の全てのファイル(Servicesフォルダも)を
入れ替えればいいのでしょうか?
0230nobodyさん
2009/10/28(水) 13:07:25ID:???単純に|で区切るやつにして欲しいです
0231nobodyさん
2009/10/28(水) 13:53:35ID:???0233nobodyさん
2009/10/28(水) 15:50:24ID:???0235nobodyさん
2009/10/28(水) 19:41:20ID:???$body .= '&';
を
$body .= '&';
に変えたということです。
2chって実体参照通るのね。
0236nobodyさん
2009/10/28(水) 19:59:24ID:???正規表現っていうのを初めて使うのですが
『おーい』『おーーーーーい』等の『ー』の数が決まっていない単語の
どちらにも対応させるにはどう書けばいいのでしょうか?
おー*い、おー+い、おー?い、おー(ー)?い ではスルーされて行き詰まってます…
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したら結局怒アイコンになるんじゃ
0337nobodyさん
2009/11/19(木) 21:56:10ID:???仕様書見る限り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:???クライアントによってはアイコンをキャッシュするから変えてもすぐには反映されんかもしれん。
0341nobodyさん
2009/11/20(金) 15:58:52ID:???同じキャラがキョロキョロするとかならかわいいと思った
0343nobodyさん
2009/11/21(土) 00:07:11ID:???ttp://d.hatena.ne.jp/bardothodol/20090801/p1
0344nobodyさん
2009/11/21(土) 00:08:06ID:???0345nobodyさん
2009/11/23(月) 20:10:45ID:???in_reply_to_status_idつけてpostするようにしても、付与されないんだけど・・・
0346nobodyさん
2009/11/23(月) 22:22:45ID:???ランダムリプライと、指定した単語にリプライの両方使ってて、
片方のBOTは反応単語以外のリプライを受け取ると
ちゃんとランダムリプライしてくれるんだが、
片方は反応単語以外のリプライを受け取ると
必ず空リプライしてしまうんだがなんでだろう?
ちなみに、おかしいと思って、きちんと動作する方の
プログラムまるまるコピペしてユーザー名書き換えて
アップロードしてみたり、Services等その他諸々の
フォルダも全部アップロードし直したりしたけどだめだった…
0347nobodyさん
2009/11/23(月) 22:28:39ID:???0348346
2009/11/23(月) 22:41:32ID:???今自分で読み返してもなに言ってるか分からなかった
0349nobodyさん
2009/11/23(月) 22:50:38ID:???0351nobodyさん
2009/11/24(火) 04:54:49ID:???自分のフォロワーに同じことで悩んでる人がいたなw
その人もbotを複数作ってて、ある一つのbotが空リプライするって、同じこと呟いてたけど、まさか…?w
それはともかく、自分のbotも反応ワード以外のリプライを貰うと空のリプライしてたんだけど、textのデータを弄ったら直ったよ。
サーバにアップしてあるtextのファイルがあるでしょ?
どうやらphaさんのは、反応ワード以外のリプライを貰うと、そのtextファイルに書いてあることをリプライするプログラムらしいので、そのtextファイルに、分からなかった場合のセリフを書き込めば良いってわけ。
そうすれば空のリプライしなくなると思う。
0352345
2009/11/24(火) 09:40:53ID:???「@名前 」つけて名前と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:???tw.txtの中身が空であるか、改行して空白の行がありませんか?
またサーバーの方で確認して文字コードはUTF-8、改行コードはLFになっていますか?
0354nobodyさん
2009/11/24(火) 21:18:07ID:???作る価値ねーしwwwwwwwwwwwww
0356nobodyさん
2009/11/25(水) 03:17:51ID:6oiYyRxaググっても解決策ゼロ。
誰か助けてください。。。
0357nobodyさん
2009/11/25(水) 03:21:26ID:???0358nobodyさん
2009/11/25(水) 03:27:51ID:6oiYyRxaどうやって?
もう削るとこないです・・・
0359nobodyさん
2009/11/25(水) 03:28:38ID:???0360nobodyさん
2009/11/25(水) 03:31:21ID:6oiYyRxaそれってどういう意味ですか?
もう消す場所ないです;;;
0361nobodyさん
2009/11/25(水) 03:35:18ID:6oiYyRxa0362nobodyさん
2009/11/25(水) 08:01:11ID:???2分間隔でリプライ返すbot
動かしてるんだけど、
cron-job不安定だったからGAEに移行。
java使ってGAEでcron(2分おきに設定)
動かすまではうまくいったんだが、
プロジェクトをデプロイして
しばらくたつとリプライを拾わなくなる。
デプロイ直後は普通に拾うんだが…
AppEngine経由でPHPのページにアクセスすると
直前にリプライ飛ばしてても
「2分以内の@はありません」ってでる。
直接アクセスするかcronjob経由でPHP叩けば、
ちゃんとリプライ拾うんだけど…。
バージョン変えてデプロイし直してもうまくいかない。
何がおかしいんだろうか…
0363nobodyさん
2009/11/25(水) 08:08:35ID:???0364362
2009/11/25(水) 08:26:52ID:???botにリプライ飛ばしたとき
・直接PHPページにアクセスするとリプライ拾える
・GAE経由だとリプライ拾えない。(デプロイ直後は拾えるがそのうちダメになる)
・GAEのcronjobにはエラーなし
ってことなんだ…
0365nobodyさん
2009/11/25(水) 14:21:04ID:w36IBMdLhttp://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:w36IBMdL0369nobodyさん
2009/11/25(水) 14:35:02ID:???0370nobodyさん
2009/11/25(水) 14:39:11ID:???0371nobodyさん
2009/11/25(水) 21:34:37ID:???確かに無料だけど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:???同じ症状の人います?
0375nobodyさん
2009/11/27(金) 19:39:09ID:???ファイル大きいって言われてもちゃんと動くぞ。
動かないならソースがおかしいかも。エラーは出なくてもどっかしら
汚いソースの部分があるんじゃないかと。
それより勝手にNeinになる仕様どうにかしてくれ。
0376nobodyさん
2009/11/28(土) 07:10:32ID:M2/cHCZPreplay_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:???リプライの無限ループを制御する
$replyLoopLimit = 3; //何回連続でreplyを返されるとループを中断するかを設定します。
が、効いてないような?
サーバーやPHPのバージョンとかに関係あったりするんでしょうか?
0380nobodyさん
2009/11/28(土) 20:18:57ID:tYVMHZ37なんか急にreplay_random.phpが動かなくなったよね…
サーバー入れ替えしただけ(中身同じ)なのに、リプ返さなくなった。
ファイルマネージャからアクセスすると「送られたメッセージはない」って出るのに、Twitterから送ると真っ白。
自分だけかと思ったけれど何人もいるらしいから、クライアントとか関わるのかな。
>379
自分もそう。4で入れてるのに1回しか返さないわ…
0381nobodyさん
2009/11/28(土) 21:06:37ID:???0382nobodyさん
2009/11/28(土) 21:12:58ID:???0383nobodyさん
2009/11/29(日) 00:24:12ID:???TL上の単語に反応させてリプライ→プログラミングを始める10の理由からコピペ
↑のに加えてどのポストに反応したかの紐付け→銀さんのBOTのin_reply_to_status_idの記事から
今のとここんな感じ
0384nobodyさん
2009/11/29(日) 01:37:43ID:???私はあそこのは使ってない。
確かにphaさんのはカスタマイズしやすくて良いんだけど、自分は「プログラミングを始める〜」のとこで公開されてるソースを改造して使ってる。
TLに反応するプログラムも、リプライも定時発言のも全てそこので事足りる気がする。
0385nobodyさん
2009/11/29(日) 02:26:40ID:???全部自分で書いた方が楽しいじゃん
まぁServices_Twitterは使わせてもらってるがなー
0386nobodyさん
2009/11/29(日) 04:49:52ID:???どういう流れなのかコメントがわかりやすく付けられてるし
サブで時間帯別のと好感度のものを組み合わせてるが
そっちはどこ改造したらいいのかもまだわからんw
0387nobodyさん
2009/11/29(日) 14:37:06ID:???自分は今phaさんの配布しているリプライソースを使っています。
phaさんの配布ソースのどの部分に入れたらいいでしょうか!
リプライパターンphpとも組み合わせたい。
//リプライパターンと照合する
if($useReplyPattern === TRUE){
require_once($replyPatternFile); 〜(略)
の前?それとも後?全然場所が違いますか。
それとも↑のソースも色々変えないと出来ないですか?
プログラミングも何もかも初心者なので色々と試したのですがうまくいきません。
改変箇所等教えていただきたいです!
参考にしたのは
ttp://d.hatena.ne.jp/ouixxx/20091006
の「時間帯によって反応を変える」って記事
>>362
GAEはサーバーと距離が短くなくちゃタイムアウトしてしまうらしい?
オススメは@pages。1分間隔でまわせるみたいです。
自分はまだ使ってませんがいずれ入れたい!
0389nobodyさん
2009/11/29(日) 20:59:32ID:???0390nobodyさん
2009/11/29(日) 21:51:04ID:???どこに入れればいいかじゃなくて、入れて動かしてみて、うまくいかなかったときに聞いたほうが
答えをもらえる確率は上がると思うよ
ここはphaさんソースの改造方法について教える場所ではないからね
0391nobodyさん
2009/11/29(日) 23:21:39ID:???自作でちょびちょびいじりながらやってる。
ていうかここってBOT製作支援スレであって、配布BOT利用支援スレじゃないと思うのよね。
まあわかる範囲では質問にも答えるけど。
しかしなるべくメンテフリーで面白いBOTってのはなかなかうまいこといかんね。
0392nobodyさん
2009/11/30(月) 07:43:42ID:???昨日まではちゃんと動いてたのにいきなり無言になりおった
0394392
2009/11/30(月) 21:46:49ID:???ありがとう。
とりあえずphaさんの使用してて、ファイル全入れ替え+別鯖(さくらから@pages)に移動して実行してるのに、同じ状況。
ほんとにいきなりリプライしなくなったので原因がさっぱりわからない。
もし同じ症状のひとがいたらと思ったけれど、いないのかな?
0396nobodyさん
2009/12/01(火) 00:22:49ID:???0397nobodyさん
2009/12/01(火) 00:40:46ID:???cronが動いててもすぐ接続がタイムアウトしちゃうらしい
さくらのBOTに比べて格段に反応が鈍い
0398nobodyさん
2009/12/02(水) 13:36:20ID:???0399nobodyさん
2009/12/03(木) 09:37:10ID:???大体は安定して叩いてくれてるけど、
実行時間が毎日1分〜2分ずつくらい遅れてきてるのが気になる
0400nobodyさん
2009/12/03(木) 12:35:16ID:???cronが度々アクセスに失敗しても、貰ったリプライには全レスするし、もうこれでいいやってなってる。
0402nobodyさん
2009/12/04(金) 02:13:13ID:???8つ回してるけど1つだけ何度上げても止まる
鯖はさくらで中身全部同じなのにわけわからん…
GAE使ってる人はJAVAとPythonどっちでやってる?
0404nobodyさん
2009/12/04(金) 12:39:33ID:???このスレ見てると同じような不具合多いみたいだし、
webcronとやらに移ったほうがよさそうだね
ただ、自分のクレジットカード作れる年じゃないから
またカーチャンに個人情報洩れるんじゃないのって渋られそうだw
0405nobodyさん
2009/12/04(金) 12:58:49ID:???0406nobodyさん
2009/12/04(金) 13:09:03ID:???止まることも遅れることも、今のところない
ちなみにPHP
0407nobodyさん
2009/12/04(金) 14:03:06ID:???botのためにブートでWindowsを立ち上げるのもなんだかな…。
0408nobodyさん
2009/12/04(金) 14:47:20ID:???一から十までcronの動かし方を説明してくれてるページをみつけて歓喜したんだが
肝心のソース説明画像がキャッシュに残っていなかった…orz
0409nobodyさん
2009/12/04(金) 15:05:25ID:???安定させたくて@pagesからさくらに移ったんだけど負荷がかかるからってcron止められてしまった
結局cron-job.org使ってる
0411nobodyさん
2009/12/04(金) 17:36:16ID:???どうして消したんだろう
0412nobodyさん
2009/12/04(金) 17:50:57ID:???たしか消えた記事内で参考にしたと書かれていたブログ記事の方は
まだ残っているから、そっちを探せば出来るとは思うけど
0413402
2009/12/04(金) 20:39:49ID:???今日見直したら止まってると思われた奴はまた動いていた
GAEはタイムアウトのタイミングがシビアなのかもしれん…
>411のサイト見て作ったのでJAVAで動かしてたが
何か問題でもあったのかな
0414nobodyさん
2009/12/04(金) 22:54:07ID:???>>413
GAEって30秒でタイムアウトじゃなかったっけ、それにひっかかってるとか?
0415nobodyさん
2009/12/04(金) 23:09:13ID:???今日の記事に書いてあった。
0416nobodyさん
2009/12/04(金) 23:09:32ID:???botのDMとコメント欄に問い合わせ多かったからだってさ。
再掲載する予定も今のところ無いみたいね
>先日までこちらのブログでGoogleAppEngineのcronjobを使ったbot管理の方法を
>記事にしていましたが、私自身のtwitterアカウントが非公開の為
>当方が管理しているbotにDMを送ってこられる方、サポートをしていないと
>申し上げているにも関わらずコメント(承認制にしてありました)でのお問い合わせが多く
>なんかもうバッタンしてしまいました…
>仕事で忙しいせいもあるので、自分に余裕がないのが悪いとは思いますが…
>現状記事の再掲載は未定です。良い解説記事が見つかるのを祈ってます。
>その際はそちらを管理されている方の負担にならないよう、
>「人事を尽くす」努力をお願いします。(私が言う事ではありませんが…)
0418nobodyさん
2009/12/04(金) 23:17:31ID:???ところで勝手にneinになるのとjaのままのとがあるんだけど何か条件あるのかな
今9個job設定しててそのうちの2個はいつもjaのままなんだけど
post内容が違うだけでほぼ同じソースなんだよね…
ファイルサイズもそんなに重くない…というかneinになっちゃうやつのほうが軽い奴もある
あと勝手にneinなるのはfehlerhaftも出やすいみたい…
0419nobodyさん
2009/12/05(土) 00:08:03ID:???「○○行目でエラーが出るんですけどどこがおかしいのか分かりません」
↑どんなエラーとも書いていない。結局全角スペースが入っていたとかそういう問題
「○○を書き換えて、って書いてありますが場所がわかりません」
↑その記述は一箇所しかないから探せば見つかる
とかそういう質問山盛りだからな…モノクロ二階調さんのところは本当にお疲れ様です、としか…
0420nobodyさん
2009/12/05(土) 00:27:12ID:???あとよくわかってないのに自分の解釈をやたら書く質問者も。
相手はエスパーじゃないんだから教えて欲しいことを伝える努力は必要だわな。
0421nobodyさん
2009/12/05(土) 00:38:08ID:???>>418
基準はよくわからんが、やっぱり無料だし文句は言えないところか。
ただ、neinになるとかの条件はヒントだけでも載せてくれると助かるね
>>419-420
質問するにも初心者(笑)なのが多いのか。
ググり方も分からないやつなのかな
てかたまに偉そうなやついるよね、上から目線の。
0422nobodyさん
2009/12/05(土) 00:47:40ID:???エラーメッセージでぐぐれば問題を絞れるはずだが、
ぐーぐる先生の資料集めとしての使い方が思いつかない人はそれなりの数いる。
WikiPediaみたいにまとまってたり聞いたらすぐ答えてくれるようなとこしか行かないのだろうし。
0423nobodyさん
2009/12/05(土) 21:07:44ID:???しかしbotの方にDM送るなんてひどいな
なに考えてんだ
自分もbot作ろうとしてるのにそのbotに関係ないメール送られて気持ちとか考えないのかね
0424nobodyさん
2009/12/05(土) 21:49:15ID:???ある程度は自分で調べないと何かあった時に対処できんから恐いわ
phaさんのしたらばのは初心者(笑)ホイホイにならないことを祈る
0425nobodyさん
2009/12/05(土) 22:45:17ID:???それマジ心配してる。でも今もう既にそうなりつつあるような…。
phaさんのプログラム以外の質問とか、PHPと全然関係ない質問多い気がする。
あまりに初心者すぎな質問であふれかえってphaさんが
疲れてしまってサポート放棄されたり、
最悪配布を中止されたりしてしまうんじゃないかと不安だ……。
0426nobodyさん
2009/12/06(日) 01:00:27ID:???↑ここを参考にして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:???0428nobodyさん
2009/12/06(日) 01:54:58ID:???そうですね、failed to load external entity とありますからね。
これは、どのように修正すれば解決するでしょうか?
0429nobodyさん
2009/12/06(日) 02:05:31ID:???サイトから情報引っ張ってくるんだったら、サイトの読み込みに失敗したとか、searchの条件に合わないとか
そんな感じなんじゃ
0430nobodyさん
2009/12/06(日) 02:13:57ID:???では、例えば検索語を "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:???某サイト様のをまんまコピペしたんですけど、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のアドレスではないんですよね?
0435nobodyさん
2009/12/06(日) 11:25:19ID:???0437nobodyさん
2009/12/06(日) 11:44:11ID:???22行目だけ動かしてみたんだけど、うちの環境でも同じエラーになった
なんだろうなぁ
>>435
そういうときは「必要じゃないかもしれないけどうpする」のが2ちゃんのしきたりだろ
しきたり守れよ
0438nobodyさん
2009/12/06(日) 12:58:19ID:???ちょっと別の検索サービスを試してみました。
$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ご指摘ありがとうございます。
申し訳ないのですが、まだ公開できるほどバグ取りが進んでいません。
今日中には公開できるようにしますのでしばしお待ちください。
セリフリストの文法ですが、
@.*バルス!.*=バルス
とした場合は正規表現で.*バルス!.*に反応しセリフファイル「バルス」を読み込みランダム一行をリプライします。
~.*爆発しろ=bakuhatsu
の場合は関数「bakuhatsu」を呼び出し発言を第一引数とします。
関数は個別にプラグインファイルで対応しますので根幹のシステムへの変更は行われません。
=が入る発言に対してバグがあるので=が入る発言への対応を検討中です。
それだけですが現在公開できるように早急にバグ取り、公開用の(既存の)設定クリーン中です。本当に申し訳御座いません。
トリップも付けていませんでした。すみません。
元来自分用に開発していたもので…
0440nobodyさん
2009/12/06(日) 18:03:07ID:???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:???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[]でついった関連設定ファイル(以下同)
公開用ぺーじの設計に手間食ったりしてます。しばしお待ちを。
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:???プログラム開くと○○○が先頭大文字になってて
大文字のままいれたらだめでしたが
小文字にしたら動きました!
って前にこれ一度もう試したんですがその時は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:???自分もそのコードが載ってるブログを参考に作ってるんだが、
ウェブ上で動いてるのを確認する方法として紹介されている
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一応こっそり公開します。
使い方、インスコ方法はウィキに乗せていくのでそれの完成を待ってください。
とりあえず公開するだけです。
0449nobodyさん
2009/12/07(月) 06:37:19ID:???ローカルで開くと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:???うぽつ
>>449
よくわからんが、GAEでのcronは某サイト見ながらJAVAでやってるの?
それとも自前?
0452nobodyさん
2009/12/07(月) 15:47:55ID:???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:MdLiWJgYttp://knowledge.ddo.jp/
発展途上なので機能は貧弱ですがプラグインファイルの開発を手伝っていただければ良いソフトになると思います。
次スレがあればテンプレに組み込んでいただけると嬉しいです。
0455nobodyさん
2009/12/07(月) 20:54:23ID:???あのスクリプトってそんなに環境によって動かないものなのか?
自分もプログラミングなんて全くの素人だがphaさんの使って
無料のサーバーでCron-jobから某サイトを参考にGAEで動かして
エラーになったりしても調べてなんとか解決できたし自分で変更もした
自分がたまたま運がよかったのか?
0456nobodyさん
2009/12/07(月) 21:27:13ID:???0457nobodyさん
2009/12/07(月) 21:31:58ID:???>エラーになったりしても調べて
が出来ないんだろう。
環境はIE6です!みたいなこと言ってた人も居たし…。
エラー文読む気ないから丸投げ。
あと本家の鯖の不調と設置の問題の切り分けが難しいのかも。
本体不安定で動かないのかスクリプトかcronか
どれが問題かわからないから丸投げ。
しかし今朝から本家不安定でうちのも不調だわ。
0458DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/07(月) 21:35:20ID:???あれ?変換間違えました?
0459nobodyさん
2009/12/08(火) 01:05:41ID:???相手が求めてるような楽屋裏話なんてないんだからそういうのがわかりゃ勝手に離れてくさ。
0460nobodyさん
2009/12/08(火) 01:06:21ID:???0461nobodyさん
2009/12/08(火) 05:26:14ID:???ファイル作成しようにも調べ方が悪いのか参考になりそうなページ出てこなくて息詰まってますorz
0462nobodyさん
2009/12/08(火) 06:35:04ID:???自分もそれなったけど、
プロジェクト作成時に「Google Web ツールキットを使用」の
チェックを外さなかった、に30ペソで。
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:???自分も同じ状況だ
GAEはタイムアウトの判定がシビアだから、
自分の鯖とGAEの距離が長すぎると駄目なのかもって意見をどこかで見た
ちなみに自分はロリポにPHPを置いたときは全くリプライが返ってこず、
@pagesに変えたら五割ぐらい返すようになった
あと、24時間以内に同じ内容は投稿できないからそれに引っ掛かってる可能性もなくはないか?
0469467
2009/12/08(火) 17:39:13ID:???うーん同じ内容の投稿制限は引っ掛かってない筈。リプライの数は割と多めだし
それに同じ内容でも@Aさんと@Bさんに返すのは別投稿扱いだし
リプライ数がスクリプトを重くしてるからか?とも思ったんだが
30分定期ポストの方が長いくらいなのにそっちは成功してる
リプライ回す時間は5分だからそこまで無茶してるとも思えない
この差がわからないんだよなー
どっちも動きが悪かったら鯖が悪いんだと思えるんだけど…
たまにちゃんと返しまくる事もあるからphpも悪くない…筈w
以前cron-jobでやってた時に@pagesが重くてさくらに変更して
今はそのままさくらで使ってるんだが…一度動かない奴だけでも鯖変えてみるよ
ありがとう
0470DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/08(火) 20:06:19ID:???使うとしたら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:???30分定期ポストのは0から0.004の間でvvvvvvvvvて感じなんだが
動きの悪い5分のリプライの方は0.004あたりでずっとまっすぐなんだ
時間の幅が大きいからかと思ったが以前テスト用に作った2分定期のはvvvvだった
まっすぐなのはずっと処理が終わってないってことなのかね…
でもリプも返す時は返すしその時もグラフはまっすぐなんだがw
0474nobodyさん
2009/12/09(水) 09:31:03ID:???昨日はいきなり0.013くらいまでハネ上がった時間帯があったが
0475nobodyさん
2009/12/09(水) 12:48:01ID:???1時間1回にセットして10時間経過見てたけど1回しか動かない
0476nobodyさん
2009/12/09(水) 15:10:48ID:???支払いとかではトラブルになった事はない?
海外サービスはその辺りがどうも不安
0477nobodyさん
2009/12/09(水) 15:39:23ID:???botが完成してあとはIDを取るだけなんだけど既に他の人が自分と全く同
じbotを作ってた。
でも、その人はIDだけ取っておいてbotは全く動かしていない状態なんだ
けど、こういう場合はどうしたらいいんだろう。
気にせず自分のbotを上げていいのかな・・・
0478nobodyさん
2009/12/09(水) 15:48:28ID:???微妙にスレ違いだと思うけど
同人板にTwitterスレあるからそっちで聞いたほうがいいかも
そっちでもたまにbotの話題になってるから。
他の、例えば天気予報や占い等の否キャラbotなら気にしないでいいと思う
0479nobodyさん
2009/12/09(水) 16:09:54ID:???0480nobodyさん
2009/12/09(水) 17:26:34ID:???別にいいんじゃないの?
俺もキャラbot作っててその状況なったことあるけど(しかも後者)
別にそのまま気にせずやってるなぁ
キャラbotでも複数あるキャラとかあるし
それぞれに面白みがあればいいんでないかな
0481nobodyさん
2009/12/09(水) 17:38:38ID:???内容ダダ被りとかでなければいいんじゃないの?
自分も某キャラのbot作ってるけど、友人も同じキャラのbot作ってる
性格がだいぶ違う設定になっているのでフォロワーさんは自分の好みの方を
選んでフォローしてる感じ
実際に「○○のbot見つけたけど下ネタが多くて無理、
もうひとつ違うのがあったからこっちフォローした!」っていう呟きも見たしさ
0482nobodyさん
2009/12/09(水) 20:10:44ID:???それの ○○○ を書くはず。↓
<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:???PHPさえインストールしてりゃWSHかなんかで自動実行できるしね
0485nobodyさん
2009/12/10(木) 03:22:04ID:???慣れてきたからリプライにも反応するように新しくphpを用意したんです。
んでもって新しいアプリケーションと2分間隔で回るファイルを作りました。
いざデプロイしたら元の30分の方まで2分間隔で回るようになって、
しかもリプライの方がひとっことも話しません。
何がいけないのか自分にはさっぱりわからないので知恵をお貸しくださいorz
0486nobodyさん
2009/12/10(木) 03:23:40ID:???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:???0493nobodyさん
2009/12/10(木) 16:36:58ID:???手軽でいいとは思うけどGAEからBAN喰らったら閉鎖とか書いてあるから怖い
0494nobodyさん
2009/12/10(木) 16:46:59ID:???こんなんでライトユーザのbot乱発したら最近ただでさえ鯖不調なのにサーバの負担厳しくないかな。
0495nobodyさん
2009/12/10(木) 16:49:39ID:???このやり方はBANされるかもって書いてたなあ
botのフォロワーが増えてからBANされたら途方に暮れそうだgkbr
0496nobodyさん
2009/12/10(木) 18:50:25ID:???cron jobでも全然問題ないぞ。
phaさんとこのに頼ってる人は有料cronに手を出したりGAEでBANされたり大変そうだな。
0497nobodyさん
2009/12/10(木) 19:07:35ID:???0分にpostさせてるBOTが10〜15分辺りに反応してて。
設定し直したけど直らないんだよなー。
0498nobodyさん
2009/12/11(金) 06:19:55ID:???少しずつphp勉強してるんだけどphaさんのスクリプトよりbardothodolさんのcurl使うやり方のが軽いのかな?
自分で一から作る力はまだ全然ないからそれならセリフの生成のところだけ入れ替えて書きかえたい
496は全部自作してるん? phaさんのスクリプトの何が問題なん?
0499nobodyさん
2009/12/11(金) 09:06:57ID:???ここ3日ほど経過見てるけど1回しかまともに動いてない
勝手に切られてたりするし駄目だろこれ…
0500nobodyさん
2009/12/11(金) 09:44:28ID:???昨日なんかは一応稼働するにはしてたみたいだけど
今日はまた失敗続きだ…
0501nobodyさん
2009/12/11(金) 12:29:55ID:???まあ軽いっちゃ軽い。最低限の処理だしな。
でもphaさんとこで使ってるNet_Twitter自体もやってることはそんな大差ないから
今のサーバマシンでわかるほどの差はでんと思う。
496じゃないけど俺は自作してる。Net_Twitterも最低限のAPIしかないし。
0502nobodyさん
2009/12/11(金) 14:15:56ID:???cronはcron jobだけど、一度も失敗したことないし、勝手にオフになることもない。
リプライとTLに反応するプログラムは、2分おきにアクセスするようにcron jobで設定してるけど、こっちはたまに勝手にオフになる。
けどPhaさんとこのスクリプトじゃないから、多少遅れても全レスするし問題ないかなと思ってる。
0503nobodyさん
2009/12/11(金) 14:31:45ID:???今のところ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:???スクリプトが無駄に大きくってるんじゃないか?
>>504の指摘点をもっかい見直せ
0506nobodyさん
2009/12/11(金) 17:27:22ID:???0時、6時、12時、18時に指定した日付までのカウントダウンをpostするプログラムの2つ登録してるけど
前者は一度も失敗してないし勝手にneinになったこともない
後者だけ毎回8時(向こうの鯖が日付変わる時間)になるとneinになりやすい、あと失敗もしやすいみたい
プログラム自体はどっちもbardothodolさんとこの参考にcurlで使うやり方なんだけど…
0507nobodyさん
2009/12/11(金) 19:34:47ID:???最多でも5分間隔しか設定できないけど勝手に止まることはないみたい
ただ、今借りてる鯖じゃ設定できなさそうでした
翻訳サイトにかけて日本語でおkな文章を解読するにサーバー直下にcronjob_*****.html(*****は指定された数字)ってファイルが必要なのかなと思ったんですが
アドレスが向こうの希望通りには設置できないんです
0508DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/11(金) 19:50:35ID:lt7fGhiKttp://knowledge.ddo.jp/wiki/
に変更です。手間くって申し訳ないです。
ポータルサイトも立ち上げる予定なので、それなりに生暖かく見守ってやってください。
0509nobodyさん
2009/12/11(金) 19:57:16ID:???getもpostも問題なさげ
Services_Twitter使用
0510nobodyさん
2009/12/12(土) 01:20:53ID:???0511nobodyさん
2009/12/12(土) 01:31:28ID:???0512nobodyさん
2009/12/12(土) 10:36:34ID:???APIの仕様書を見ていると、アクセストークンを設定した時に、レスポンスとしてユーザIDとスクリーン名が返ってくるとのことでした。
それらを使用したいと考えているのですが、どうにも取得が出来ません。(setTokenしたあとに、getLashResponseを呼んでみたり)
どうにかそのレスポンスを得る方法は無いのでしょうか。もしくは、そのレスポンスを取得出来るPHPで使用可能なOAuthライブラリは無いでしょうか。
0513nobodyさん
2009/12/12(土) 22:01:18ID:???つかれたー!って人におつかれって言ってあげるようなことなんだけど
@がないとどうにもわからん・・・。
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:???かまってくれてありがとうw
他人への@に、てかすべての@に反応しないように書いてたんだけど
\@があったら弾くようにしたはずなのにうまく回らない
細かいミスでHP削られたので今日はもう寝ます、ありがとう
0518DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/13(日) 02:14:06ID:B1fOU/ii@ってエスケープ必須でしたっけ?(in PHP
0519503
2009/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:???投稿出来ずにエラーになるのは何でだろう?
ブラウザ上で確認しただけなんだが、ただ一言ERRORって出るだけなんだ…
service_twitterの本体プログラム自体はエラー出てない
勿論パスワードもIDも間違ってないんだ…何でだ…orz
0521nobodyさん
2009/12/13(日) 10:10:26ID:???0522nobodyさん
2009/12/13(日) 10:12:25ID:???やったことや、ソースをそのまま貼ったほうが原因は特定しやすい。
0523DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/13(日) 10:20:09ID:B1fOU/iiソースうpきぼん
0524nobodyさん
2009/12/13(日) 11:03:50ID:???0525nobodyさん
2009/12/13(日) 11:41:51ID:???NG登録は簡単なんだし気になるならあぼーんしときゃいいさ。
0526520
2009/12/13(日) 14:04:45ID:???ソース元は銀さんのとこで、ご本人が説明されている環境をそのまま使用してる
設置サーバーもやり方も全く同じ
Twitter.phpにアクセスすると真っ白な画面にになり、ランダムに呟かせるphpファイル
(例えばbot.php)にアクセスすると、白い画面に一文字「ERROR」の文字が出る
↓ソース
0527520
2009/12/13(日) 14:10:31ID:???//d.hatena.ne.jp/silverbot/20090829#c1260572663
ここのページのソース丸コピペ、フルパス、ID、パス、台詞だけ違う状態
0528nobodyさん
2009/12/13(日) 15:03:18ID:???試してないが
if(! $st->setUpdate($post) ){
die('ERROR');
辺りを消したらちゃんとしたエラー吐かないかな?
0529nobodyさん
2009/12/13(日) 15:46:35ID:???違ったらポストって機能を加えたいんだけど、ログの書き込みがうまくいかない。
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:???GoogleにでもUPするかな
0532nobodyさん
2009/12/13(日) 18:34:07ID:???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:???http://d.hatena.ne.jp/silverbot/20090829/1251532471
タイムアウトするのはこの部分 $plist[$key] == $log[$a]
ログはツイッター本家と同じく上が新しいものになるようにしてる
最近勉強始めたばかりなので見難いかもしれないけどお願いします
0535520
2009/12/13(日) 19:44:53ID:???反応ありがとう!
試しに
if(! $st->setUpdate($post) ){
die('ERROR');
}
を抜いてやってみたら、ただの白いページが出た…
そんでもって投稿はされてない
あるとERRORになってないとシカトって一体どういう…???
0536nobodyさん
2009/12/13(日) 23:02:07ID:???ログの保存の仕方はわからないけど改行コードは入れてる?
少なくとも末尾に \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:???の銀さんのBOTの作り方見てたけど結構ひどいな。
Services_Twitterを今後使うと見せかけて、リプライとかは全く関係ない別のソースを使ってる。
PHP触ったばかりかもしれないから仕方ないけど。
0538nobodyさん
2009/12/14(月) 00:25:34ID:???銀さんとこのは全部他のとこの記事のコピペだよ
リプライと定時のソースはそれぞれ違う人から持ってきてるんだから
関係なくて当たり前
0539nobodyさん
2009/12/14(月) 00:29:22ID:???すみません、書き忘れてました。
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:???タイムアウトするのはtwitterの鯖なのか、botを動かしている鯖なのか、どっちですか?
twitterだったら鯖が重いかtwitterにPOSTするスクリプト(botとしての機能じゃない方)が悪い。
botを動かしている鯖なら鯖変えるとか。
と、ここまで書いてから気づいたけど
if($plist[$key] == $log[$a])
文字列で==はちゃんとした判定はできないから
if($plist[$key] === $log[$a])
===じゃないとだめだよ。
0542nobodyさん
2009/12/14(月) 10:38:45ID:???同じ文字列型でも数値型で比較される場合があるから、
文字列で比較する場合はなるべく===を使った方がいいってことじゃない?
0543nobodyさん
2009/12/14(月) 11:10:23ID:???文字列型同士の比較なら==でも===でも値は一緒な気はしたんだけどそういうことあるの?
例えばどういう場合だろ。
0544nobodyさん
2009/12/14(月) 11:55:04ID:???cronがうまく動かない。
「zu groß」って容量大きすぎってこと?どうすればいいの?
0546nobodyさん
2009/12/14(月) 13:07:35ID:???cron-job.orgなら「zu gro?」になってても
botの動き的には正常稼働されてるはずだから気にすんな
0547nobodyさん
2009/12/14(月) 15:22:27ID:h7BWhtMhどうやってやるんですか?
0548nobodyさん
2009/12/14(月) 15:28:22ID:???それだとまずPHPスレとか見て基本覚えたほうがいいんじゃないかな。
0549nobodyさん
2009/12/14(月) 15:49:04ID:h7BWhtMhそういう紹介サイト的なのがあったらいいんだけど。ってそんな簡単じゃないですよね。
PHPスレものぞいてみます。
0550nobodyさん
2009/12/14(月) 16:25:45ID:???0551nobodyさん
2009/12/14(月) 16:27:31ID:h7BWhtMhプログラムとか難しいことはさけてフォロー返しだけできたらいいと考えてる愚か者ですw
0553nobodyさん
2009/12/14(月) 17:10:33ID:h7BWhtMh何ヶ月もPC画面に縛り付けられるほどの時間がないだけ。
3日程度ならいいけど。
0554nobodyさん
2009/12/14(月) 17:11:57ID:???0555nobodyさん
2009/12/14(月) 17:16:59ID:???ググったら見つかったけど
http://logic.stepserver.jp/memo.cgi/archive/506/
とりあえず試してみたのがこれ
http://codepad.org/7VTuvTdy
上3つはちゃんと動いてるけど下3つはちゃんと動いてないね
0556nobodyさん
2009/12/14(月) 17:27:12ID:???公式マニュアルに全部書いてある
0557nobodyさん
2009/12/14(月) 17:29:44ID:???いいサイト教えてやるよ
http://www.google.co.jp/
このサイトで検索すればtwitterAPIの仕様から各言語の利用方法まで詳細に載ってるサイトを検索できるよ。
自動フォロー機能ってのも検索してみれば出てくるんじゃないかな?
0558nobodyさん
2009/12/14(月) 17:49:50ID:h7BWhtMh0559nobodyさん
2009/12/14(月) 17:53:07ID:???0561nobodyさん
2009/12/14(月) 17:58:01ID:h7BWhtMh0562nobodyさん
2009/12/14(月) 17:59:54ID:h7BWhtMh0563nobodyさん
2009/12/14(月) 18:01:48ID:h7BWhtMhこの文字を結局どこへ貼り付けたらいいか書いてないからよく分からん。
0564nobodyさん
2009/12/14(月) 18:07:01ID:h7BWhtMh0565nobodyさん
2009/12/14(月) 18:09:35ID:???昨日からbot作りはじめたけど
postさせるところまではできたよ。
>>546ありがとう。気にしないことにして次の手順頑張る。
0566nobodyさん
2009/12/14(月) 18:16:20ID:???0567nobodyさん
2009/12/14(月) 18:17:31ID:h7BWhtMh0568nobodyさん
2009/12/14(月) 18:18:25ID:h7BWhtMh0569nobodyさん
2009/12/14(月) 18:25:19ID:???0570nobodyさん
2009/12/14(月) 18:27:26ID:???↑銀次さんのやつ。
リンク貼るくらいしかできないけど頑張れー!
サーバの用意とかpostさせる手順1とか、トラックバックのとこに色々あるから。
0572nobodyさん
2009/12/14(月) 18:30:54ID:???お役に立てなかったかも。。ごめん
0573nobodyさん
2009/12/14(月) 18:55:50ID:h7BWhtMh0574nobodyさん
2009/12/14(月) 19:05:13ID:???リプライで「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:???はい。
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:???0577529
2009/12/14(月) 20:21:19ID:???ありがとうございます!とりあえず===にしました
エラーはFatal error: Maximum execution time of 8 seconds exceeded in…というエラーが時々出ます。
鯖とツイッターどちらでタイムアウトしているかは分かりません。
とりあえず今set_time_limitで指定しましたが今は結果待ちです。
cron-jobが全く動いてくれないのもこのせいでしょうか?
今日の昼に毎日毎時0分に叩くよう設定しましたが1回も動いてくれません…。
@pagesとcron-jobで動いている人は沢山いるようなのでコツがあるのでしょうか?
Aktiv?はちゃんとjaにしています。
0578529
2009/12/14(月) 20:28:28ID:???@pagesではset_time_limitが使えませんでした…
0579543
2009/12/14(月) 21:33:06ID:???うーん。変数の型が違うと暗黙の型変換が行われるから===を使うべきってのはわかってるんだ。
また同じことを言っちゃうけど、「同じ型の場合」に == と === で何が違うの?て話なんだ。
もちろん、値が保障されない場合も考えて===を使う「べき」ってのはわかるし
コーディングするときはもちろんそうするだろうけど
型が同一の場合にも==だとなんか問題あるのかなって確認したかったんだ。
特になさげかな。
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:???毎時0分はたくさんの方が設定していると思われます。
処理内容にもよりますが、ジャストタイムが不要ならば13分とか、48分とかの
中途半端な時間に設定した方が良いかもしれませんね。
1分とかだとサーバーがまだ0分のヤツを処理してたりしてw
0583DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/15(火) 00:43:48ID:???PHPのバッククォートはきちんとエスケープしませう。というお話でした。
0584nobodyさん
2009/12/15(火) 08:40:01ID:???なぜナウやnawではなく「なう」なのか
http://d.hatena.ne.jp/RRD/20090727/1248682147
0587nobodyさん
2009/12/15(火) 11:12:56ID:???0588nobodyさん
2009/12/15(火) 14:13:06ID:???PHP呼び出すHTML作ってアクセス解析付けたけど何もログが残ってない
0590nobodyさん
2009/12/15(火) 14:31:21ID:???10ツイート/day程度の頻度で、ポスト候補のテキストパターンは100近く仕込んであるのに
やたら同じのばかり選ばれるみたいで、ポストが飛んでしまうことがよくある。
cronも安定してるし他の挙動には問題ないので、この状態がすごく気になる…
どうにか回避する方法はないでしょうか。
0591nobodyさん
2009/12/15(火) 15:41:37ID:???自分の発言最新10件と一致しなければpostする様にするとか
0592nobodyさん
2009/12/15(火) 15:49:39ID:???0597nobodyさん
2009/12/15(火) 18:10:54ID:???//ポストリストとログ読み込み
$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:???0601nobodyさん
2009/12/15(火) 20:07:07ID:???被ってたらポストしないじゃなくて
>>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:???botがまったく無反応になってしまった・・・
0606DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/16(水) 00:14:04ID:CexvtTFshttp://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:???//ポストリストとログ読み込み
$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:???これは・・・ゴクリ
0609nobodyさん
2009/12/16(水) 01:11:00ID:???0610nobodyさん
2009/12/16(水) 01:34:58ID:???ばれなきゃいいと思ってたけど指摘されたか。
//ポストリストとログ読み込み
$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:???↑これって配列をつくって並べてる、であってる?
まずいの?
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:???xmlで取って来れないものか
そうしたら最新10件のログを作成する部分だけはいらなくなる
0616nobodyさん
2009/12/16(水) 11:06:29ID:???0617nobodyさん
2009/12/16(水) 11:13:08ID:???まあいんじゃね。
ていうかxmlでもjsonでもAPI叩けば拾ってこれるし。
0618nobodyさん
2009/12/16(水) 11:35:25ID:GKFzjgHobotというかPHP初心者で取っ掛かりが分かりません。
スクリプトがあまり重くなると困るので、
タロットの結果を書いたxmlを作って「占って」とリプライされたら
そのつどタロットのxmlを読み込んで結果をランダムに出力するとか可能ですか?
それともみなさん、
$tarot=array("",""......);
とかでやってるんでしょうか・・・?
0619nobodyさん
2009/12/16(水) 12:20:23ID:???ログ生成を追記モードでやってる場合は下の方が最新ログになるから
ログ読み取りの部分と被ってない部分の抽出はこうじゃ駄目かな
//ログ読み取りの部分
$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:???そこで行数カウントしなくても
$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ここにヒントが...
0623nobodyさん
2009/12/17(木) 01:12:23ID:???0624nobodyさん
2009/12/17(木) 21:45:44ID:???そのDMのメッセージ内容に相手のname(screen_nameじゃない方)を使いたいときどうすればいい?
0625nobodyさん
2009/12/17(木) 22:32:36ID:???0626nobodyさん
2009/12/18(金) 00:57:26ID:???0627nobodyさん
2009/12/18(金) 19:37:19ID:???フォローイングとフォロワーのAPIでname取得できなくね?
0628nobodyさん
2009/12/18(金) 19:42:38ID:???0629nobodyさん
2009/12/18(金) 20:11:26ID:???クライアント名を変えられるのが人気らしいですね。
使ってますか?
私はまだベーシック認証ですが。
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画面ではちゃんと書き込みができるのようでもう何が何やらさっぱりです。
申し訳ございませんが誰かご教授いただけると嬉しいです。
0631630
2009/12/18(金) 21:30:49ID:???何故か今、回復してしまいました
サーバーの調子が悪かったのでしょうか・・・
スレ汚してしまい本当にすみません
0633nobodyさん
2009/12/18(金) 23:08:00ID:???返すリプライによって画像を変えたい場合ってどうしたらいいんですかね?
他の方のプログラムだとみつけたんだけどphaさんのって発言はテキストファイルで他の人とちょっと勝手が違うからよくわからないです…
0634nobodyさん
2009/12/19(土) 00:14:49ID:???0635nobodyさん
2009/12/19(土) 00:32:47ID:???0636nobodyさん
2009/12/19(土) 01:02:08ID:???http://pcod.no-ip.org/yats/
http://buzztter.com/
このあたりがRSS吐いてるから適当に解析するよろし。
0638nobodyさん
2009/12/19(土) 07:18:16ID:???ベーシック認証が廃止になるから
http://twitter.com/tweeterjp/status/6522684422
0640nobodyさん
2009/12/19(土) 14:52:54ID:???http://apiwiki.twitter.com/OAuth-FAQ
0641nobodyさん
2009/12/19(土) 17:58:05ID:???自分なりに色いろやってみたのですが、どうしてもうまくいかないので相談させてください。
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)
0644nobodyさん
2009/12/19(土) 19:51:19ID:???0645nobodyさん
2009/12/19(土) 19:52:17ID:???0646nobodyさん
2009/12/19(土) 19:56:18ID:???0647nobodyさん
2009/12/19(土) 19:57:39ID:???まぁ、やってみなよ、おもしろいから。
DDNSとかで
セキュリティ??知らんがな(´・ω・`)
メールとかいろいろ遊べるし
0648nobodyさん
2009/12/20(日) 16:24:25ID:???同じようなとこで躓いた経験があります。yamlファイルの記述に問題があったようです。
そこのサイトで紹介しているyamlファイルのテキストをブラウザからコピペしたもの
ではなく、そのサイトからリンクされているページで紹介されている
ソースコードをコピペしてやってみると幸せになれるかもしれません。
違っていましたらあしからず。
0650nobodyさん
2009/12/20(日) 23:25:31ID:???0652nobodyさん
2009/12/21(月) 00:32:05ID:???できなくなったら対策考えればいい。
ググればいくらでも出てくるからな。
ググらないのは甘え
0653nobodyさん
2009/12/21(月) 00:51:02ID:???慣れるの大変だなまた
これで他人のソース丸コピペBot量産厨が減るといいけどwww
0654nobodyさん
2009/12/21(月) 00:53:31ID:???もっとましな方法はないのか…
0655nobodyさん
2009/12/21(月) 00:58:00ID:???0656nobodyさん
2009/12/21(月) 10:45:51ID:???0657nobodyさん
2009/12/21(月) 12:58:32ID:???http://d.hatena.ne.jp/sotarok/20080807/1218114681
0658nobodyさん
2009/12/21(月) 14:12:31ID:???0659nobodyさん
2009/12/21(月) 21:17:30ID:???わざわざ使わなくてもHttp_Requestがある
curlの仕様自体が変態
0660nobodyさん
2009/12/21(月) 22:25:00ID:???0662nobodyさん
2009/12/23(水) 02:57:59ID:???htmlのページにフレームかなんかでphp埋め込んで、そのページを延々更新し続けるとcron使わなくても動くんじゃない?
自分はめんどくさくてそんなことせずにcronくんでるんだけど誰かcronわからなくてhtmlの知識持ってる人は試してみてほしい
24時間ずっとブラウザ立ち上げてなきゃいけないけど
うーん、やっぱり駄目かな。アホなこと考えてごめん
0663nobodyさん
2009/12/23(水) 03:35:15ID:???自分が起きる時間にBOTは起きて自分が寝る時間にBOTは寝る感じで
0664nobodyさん
2009/12/23(水) 11:48:56ID:???考えたことあった
ただ>>663が言うように常にPCを上げておかなきゃいけないからね
それが問題にならないbotなら出来ると思うよ
0665nobodyさん
2009/12/23(水) 11:58:43ID:???0666nobodyさん
2009/12/23(水) 11:59:24ID:???0668nobodyさん
2009/12/23(水) 14:35:27ID:???0669nobodyさん
2009/12/23(水) 16:50:10ID:???0670nobodyさん
2009/12/23(水) 21:40:03ID:???0671nobodyさん
2009/12/24(木) 14:59:33ID:???このボットジェネレーターが結構使えると思うんだがどう?
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:???http://www.mnet.ne.jp/~nakama/
0677674
2009/12/24(木) 23:59:04ID:???0678nobodyさん
2009/12/25(金) 01:06:33ID:???だけでいんじゃね
0679nobodyさん
2009/12/25(金) 01:08:50ID:???だったら?
0680674
2009/12/25(金) 02:20:44ID:???それだと「ごちそうさま」だけの@に反応しなくなる
また、 おいしかった.*ごちそうさま
だと、「おいしかった」に反応してしまうんだ…
>>679
「おいしかったーーー!うまい!ごちそうさま!」とか
「ごちそうさま!パスタおいしかった」にも反応させたいんだ
「おいしかった。ごちそうさま。」ってきっちり@もらって
反応させるしか方法はないのかな…
0681nobodyさん
2009/12/25(金) 02:24:57ID:???0682nobodyさん
2009/12/25(金) 02:38:50ID:???0683674
2009/12/25(金) 02:53:24ID:???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:???すごい基本的なこと聞いてるからそれもわかんないんじゃ今後似たような質問だらけになるぞ。
0686nobodyさん
2009/12/25(金) 08:40:21ID:???反応する単語増やしたらタイムアウトしやすくなってきた
.*を多用しすぎたのが良くなかったのか?
ファイルサイズを小さくできる(タイムアウトしにくい)表記とか
あったら教えて欲しい
0687nobodyさん
2009/12/25(金) 10:26:04ID:???「ごちそうさま」だけでいいならそれだけ書いておけば「おいしかった」があってもなくても引っかかる
「おいしかった」の有無で反応を変えたいなら分けて書けばいい
PHP云々以前の問題だと思うよ
0688nobodyさん
2009/12/25(金) 14:08:55ID:???0689nobodyさん
2009/12/25(金) 20:40:14ID:yLGH+OzAcurlで取得してsimplexml_load_stringで読むことはわかるけど
このままforeachでループすると同じものを何回も繰り返して
二重にも三重にも実行されることになってしまうがどうしたらそれを回避できる?
0690nobodyさん
2009/12/25(金) 21:03:01ID:???0691689
2009/12/25(金) 21:18:19ID:yLGH+OzAいや、そこんとこの処理をどうするか考えてる
ループを実行するたびにファイルにでもidを記録して
ループを回す度にチェックして重複してたら実行しないようにすればいいんだろうけど
それだとすごく時間かかる
0692nobodyさん
2009/12/25(金) 21:24:49ID:???それなら上のほうで同じような話が出てるよ
0693689
2009/12/25(金) 21:55:28ID:yLGH+OzAそうじゃない、xmlから拾うときに前拾ったのを拾わないようにするにはどうしたらいい?
0695689
2009/12/25(金) 22:07:51ID:yLGH+OzA日時で絞るなんて機能あった?
IDを記録しておく方法だと
ファイルに記録すると読み込み時間かかるし、ファイルの中身を消すタイミングもめんどくさいし
データベースでも同じ
0696689
2009/12/25(金) 22:16:08ID:yLGH+OzA0698nobodyさん
2009/12/26(土) 00:09:15ID:???要するに重複しないステータスを取得したいってことでいいんかね。
まあ>>696でいいんだろうけどAPI叩いて連続で取得したんなら
ステータスIDをキーにした配列に格納しなおして重複避けたり
読み終わったIDを保存しといてそれは除外するなり手はあると思うが。
0699nobodyさん
2009/12/26(土) 00:30:52ID:???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_id max_id を使って欲しいんだろう。
0702nobodyさん
2009/12/26(土) 14:39:10ID:???これを偽装する手段ってありませんか?
0703nobodyさん
2009/12/26(土) 14:40:46ID:???0704nobodyさん
2009/12/26(土) 14:49:04ID:???ありがとうございます。
調べてみます
0705nobodyさん
2009/12/27(日) 05:06:54ID:???<schedule>の書式とにらめっこしたけど調べた範囲では分からなかった…
0708nobodyさん
2009/12/27(日) 23:04:05ID:???0709nobodyさん
2009/12/28(月) 05:11:09ID:???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:???FileQが多分一番安いし一分間隔でcron使えるし
0715nobodyさん
2009/12/28(月) 12:28:27ID:???それボットじゃねーwww
FileQ試してみたけどスゲーな
安定して1分間隔でcron動く
1年1180円だしこれでいいんじゃね?
0716nobodyさん
2009/12/28(月) 19:59:23ID:???0717nobodyさん
2009/12/28(月) 21:38:58ID:???もっとちゃんと作ったらいいじゃん。
0719nobodyさん
2009/12/29(火) 01:24:34ID:???ここを参考に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:???マルコフ連鎖とかいうのを実装して作るんだけど、あくまで「文と文のつながり」を記憶できるだけであって、文意の解析までは辿りつけてないよ。
発言ごとに辞書引いて意味を覚えるとか面白いとは思うけど、労力が足りないんじゃないかな。
0721nobodyさん
2009/12/29(火) 03:33:58ID:???ttp://www.bitfolge.de/pseudocron-en.html
0722nobodyさん
2009/12/29(火) 05:41:41ID:???>>720だし、マルコフじゃなく自分である程度の文章のつながりを作るのもできんこともないけど
すげーめんどくさいか、すげー少ないバリエーションになってしまう。
あれはああいうカオスな発言を楽しむもんだと思ってる。
伺かみたいな文章として成り立ってるのを作るにはあれみたいに
一文ごとにデータ作ってやんないといけないしな。
チャットのbotでそういうの作ろうとしたけど飽きて投げた。
品詞の分類だけじゃなく活用まで考えて作るのすげーめんどせーよ。
0724nobodyさん
2009/12/29(火) 17:12:26ID:???一分間隔で動くように設定して60分放置。
結果54回動いた。
0726nobodyさん
2009/12/30(水) 01:23:09ID:???今日の夜から突然動かなくなったんで確認したら綺麗に消されてた
他にも消された奴いる?
0727nobodyさん
2009/12/30(水) 02:04:50ID:???消された
cron-job、jaになってても1日中botが沈黙とかここ何日かで急になったんだけど
他に同じひといないかな
上にあるFileQ試してみたいんだけどcronでわからなくなってる
Commandにhttp〜じゃだめなのか…
0728DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/30(水) 02:49:38ID:???日本語で使えるサービスが有れば便利だと思うのですが。
0729nobodyさん
2009/12/30(水) 03:51:14ID:???海外の安いVPSを借りてみるとか
0730DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/30(水) 05:48:21ID:???自宅鯖です。
model name : Mobile Intel(R) Pentium(R) 4 - M CPU 1.80GHz
memory:512MB
0731nobodyさん
2009/12/30(水) 06:06:15ID:???0732nobodyさん
2009/12/30(水) 09:30:58ID:ScDpW0+E別のメールアドレスで再登録しようと思ったけどダメ。
FileQもよくわからないしめんどくさいなぁ。
0733nobodyさん
2009/12/30(水) 11:11:49ID:???0734nobodyさん
2009/12/30(水) 11:25:59ID:???あの後別のメールアドレスで再登録して
URLも登録し直したけど大体大丈夫っぽい
たまに動かないけど一時間に一回のボットだからそんな問題ないって感じ
今日から帰省だからその間に止まってたら困るな
やっぱり有料のサーバ借りてやるしかないのか
単なる趣味にしか過ぎないしボットのためにお金注ぐのもなんだかねー。
GAEも検討したけど色々面倒だお
設定に何十時間も掛ったと聞くけど最新のOSでもそう?
あんまりパソコン立ち上げる時間無いからちょっと躊躇してるんだ
0735nobodyさん
2009/12/30(水) 12:48:47ID:???コマンドにはhttp://じゃなく
/home/******/public_html/*****.php
と、実行したいファイルのディレクトリを書けばいけるはず。
0738nobodyさん
2009/12/30(水) 13:50:50ID:???0739nobodyさん
2009/12/30(水) 13:53:47ID:???0740DAWNTO_Windy-melt ◆Windy/f9HNwg
2009/12/30(水) 14:20:02ID:???それ、今からやるところですよ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:tKJERMBpFileQでの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:???php /home/ユーザー名/public_html/PHPの入ってるディレクトリ名/ファイル名.php
cd /home/ユーザー名/www/PHPの入ってるディレクトリ名; /usr/local/bin/php ファイル名.php
の2通り試してみたらどっちも同じように動いてるよ
0746nobodyさん
2009/12/30(水) 22:03:34ID:???0748nobodyさん
2009/12/31(木) 00:57:09ID:???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:???他のサーバにアップしたPHP(FileQにアップしたものと中身は同じ)は問題なく動くのに。
0751nobodyさん
2010/01/01(金) 09:53:36ID:???サイトからコピペしたときによくあたるんだけど、、文字エンコーディング関連でエラーが出る事がある。
¥がそのままの時はバックスラッシュに変換してみて。linux環境での実話。
SJISをviで読み込ませたら¥記号のままでエスケープできずに狂ったことがあった。
FedoraはUTF8だったので
:%s/¥/\\/g
:set fileencoding=utf8
で保存し直した。
0752nobodyさん
2010/01/01(金) 11:29:43ID:???アップローダー(CyberDuck)を使って、パブリック_htmlへアップロードした。
>>751
うーん見た感じ\とかエンコードとかは大丈夫みたいなんだが…。でも返信ありがとう。
0753nobodyさん
2010/01/01(金) 15:27:24ID:???エラーの文をコピペしてみれ
スクリプトの記述ミスがいけないのか、文字化けなのか、そもそもそこのサーバーのPHPで使えない関数が含まれてるのか
0754nobodyさん
2010/01/01(金) 23:15:29ID:???・cron-job消された!手間かけるの面倒!
→FileQ
・cron-job消された!手間をかけるのは厭わない
→GAE
・そもそもcron-job使ってません^^
→自鯖とか各自の鯖のcron
・cron?なにそれこわい
→PC起動したまま延々とリロード
かな?
0755nobodyさん
2010/01/02(土) 19:48:02ID:???0756nobodyさん
2010/01/03(日) 00:06:15ID:???0757nobodyさん
2010/01/03(日) 05:35:49ID:???zeroweb(happy888.net)だと、うまく時間内にキャッチできてない→反応しない
昔から借りてる某レンタル鯖は反応するけどその後2回ほどreplyしてしまうし
鯖によって本当にマチマチ…
ちなみにどの間隔も変わらない感じした
0758nobodyさん
2010/01/03(日) 10:03:12ID:???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:???0760nobodyさん
2010/01/03(日) 10:11:34ID:???curl未対応だな。FileQは
0761nobodyさん
2010/01/03(日) 13:37:31ID:???トレ君か よろしく
0762nobodyさん
2010/01/03(日) 15:48:44ID:???今朝、持ってる全てのアカウントが消されてて別のメアドでアカウント取ったんだが、新しいcronを設定する端から消されて行くw
アカウント取れたからには個人を特定されて弾かれてる訳ではないだろうし
BOT本体だけでなく、30分に一回フォロー用phpを回すだけのアカウントも消されていたのもそのせいかも
0763nobodyさん
2010/01/03(日) 18:45:10ID:???変な汗でた よろしくお願いします
FileQを諦めるかwebcronにするか自力で設定するか…
1日数回の定時postはwebcronにしてたんだけど、リプライはさすがに消費量が激しいので無理だな
0764nobodyさん
2010/01/03(日) 21:45:57ID:???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の読み込みに問題があるのでしょうか?
どうしたらいいのかわからずお手上げ状態です
0767nobodyさん
2010/01/03(日) 22:33:27ID:???cron-jobは、日本のBotで負荷が異常に増えたのに対して、〜.jp規制をかけているようです。
phpなどの実行URLか、登録メールアドレスが日本のドメインの場合強制排除しているとか。
ソースはほかの開発者さんのツイートなので曖昧ですが、〜.jpを使っていない私が
全く規制されていないのも納得できました。
0768nobodyさん
2010/01/03(日) 23:21:18ID:???0770nobodyさん
2010/01/04(月) 01:59:32ID:???0771769
2010/01/04(月) 02:12:01ID:???エラーは出てない、ポストも問題ない、ただin_reply_to_status_idが付与されないだけなんだ
Basic認証の時は出来てたんだけどなぁ
0772nobodyさん
2010/01/04(月) 03:03:11ID:???自分はこれで出来てるけどどうだろう
$req = $to->OAuthRequest($host,array("status"=>$aaa,"in_reply_to_status_id"=>"$bbb"));
0773769
2010/01/04(月) 07:01:43ID:???単純な話で情けないな…。>>772ありがとう
0774nobodyさん
2010/01/04(月) 09:56:27ID:???0775nobodyさん
2010/01/04(月) 10:13:46ID:???どっちにしろ送るときゃ文字列なのにおかしなことをしてるな。
しかも黙って蹴ってるってのがなんだかやな感じだな。
0777nobodyさん
2010/01/04(月) 11:43:15ID:???手動なら動くということはファイル自体は問題ないんだよな…?
なにがあかんの……
0778nobodyさん
2010/01/04(月) 13:20:42ID:???1日とか待たなきゃいけないのかな…
全然来ないのでちゃんと申込出来てるのかわかんなくなって来た
0779nobodyさん
2010/01/04(月) 16:20:35ID:???メールはすぐ来た。が、その後すぐアカウントロックされてしまった。
cron-jobでロックされた人が流れてるからかもしれん
>776
自分は.comドメインだけど鯖がロリポ
鯖IPかアクセスしたIPで日本かどうか判断してるのかも
0780778
2010/01/04(月) 17:00:18ID:???違うメアドで登録してみたら今度はすぐに来た
今のところアカロックはされてないみたいだけど
cron-job.orgのときみたいにログイン出来なくなっちゃったの?
0781nobodyさん
2010/01/04(月) 19:08:24ID:???ただもうcron-job.orgは設定するそばから消えるけど
>>777
コマンド欄にURLそのまま打ち込んでないか?
ちょっと上の方見て来い
0782nobodyさん
2010/01/04(月) 19:46:04ID:???同じ状況の奴いる?
0784nobodyさん
2010/01/04(月) 19:53:07ID:???0785nobodyさん
2010/01/04(月) 20:57:33ID:???curl使えない?何のこと?とか思ってたらリプライ用のファイルも回せないってことなんだよな?
お金払っちゃったぜ/(^O^)\
0786nobodyさん
2010/01/04(月) 22:02:45ID:???うちのとこもそう。
まったくいじれないのにそのまま動いてるから移行もできない状態…
とりあえず自然にオフになるの待ってる。
0787nobodyさん
2010/01/04(月) 22:06:20ID:???誰か助けて
0788nobodyさん
2010/01/04(月) 22:24:40ID:???>>769
掘り返してくれてありがとう
>>772
ありがとう出来たよ!
型が違うのかと思ってintvalかませたりとかは試してたんだけど単純な話は単純な話だったんだな…
0789nobodyさん
2010/01/04(月) 22:27:08ID:???0790nobodyさん
2010/01/04(月) 22:29:00ID:???0792nobodyさん
2010/01/04(月) 22:57:17ID:???向こうに用途悟られて消されかねないし
0793779
2010/01/04(月) 23:07:46ID:???2つ動かしてたのがどうしても1つしか設定できなくなった
それで.deでアカウント作ったけど速攻でロックされた
deで表示された文を翻訳すると再登録するな+問題あると訴えるみたいな感じだったから
それはねーおwと思いつつ再登録してない
他にもcronサービスあるから皆が上手く分散できるといいんだが…
0794nobodyさん
2010/01/04(月) 23:27:24ID:???色々削ったり位置を変えてみたけどお手上げだ
0796nobodyさん
2010/01/04(月) 23:48:55ID:???まあそれ以前にcron探しでbot止まってるから意味ないけどな…
0797nobodyさん
2010/01/05(火) 00:18:46ID:???0798nobodyさん
2010/01/05(火) 00:25:47ID:???ここは凄いな。1分間隔で動くし1年で1000円ぐらいだし
cronの使い方がよくわからなかったが、
>>744>>745の書き込みですんなりできた。
0799nobodyさん
2010/01/05(火) 00:36:34ID:???795だけど私は実行してもエラー出ないけどリプライをしてくれない状態
自分で組んだのですがAPIでは動いてくれているので、恐らく組み込みがうまくできていないのではないかと…
0800nobodyさん
2010/01/05(火) 00:47:23ID:???794です。自分も>>799と同じくエラーが出ずAPIの状態…
curlを削ってもいいと聞いたので少しずつ削ってその都度試してみたけど駄目だった
0801nobodyさん
2010/01/05(火) 00:47:51ID:???0802nobodyさん
2010/01/05(火) 01:37:59ID:???0803nobodyさん
2010/01/05(火) 01:38:48ID:???0804nobodyさん
2010/01/05(火) 03:15:16ID:???0805nobodyさん
2010/01/05(火) 04:34:41ID:???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
0807nobodyさん
2010/01/05(火) 04:50:40ID:???0810805
2010/01/05(火) 11:35:24ID:???>>809
最初にDLしたものをそのままUPしたらだめだったので、
文字コードをUTF-8、改行コードも念のためLF固定にして再UPしたんだけどダメで、
更に.htaccess置いてサーバーの方で改行コードを固定してもダメでした。
SDNさんのHP注意書きの様に、スクリプトのバージョン違いかとも思って
2度ほど該当バージョンの物をDLし直したんですがダメでした。
白くなるエラーは私も何度か遭遇して、その度に閉じ忘れとかが原因な事が多かったので
今回もそうなのかなぁと思ったのですが……
配布されているものに間違いがあるとは見た限り思えなくて…
ステップサーバーのPHP注意に、白くなるエラーは、PHP5に対応してないスクリプトの可能性アリ
というのがあったので、疑っても見ましたが、それも無いと思いますし……
謎です
とりあえず、自分でも、OAuth調べ中ですが、お心当たりある方居ましたら
ご助言お願いしますorz
0811nobodyさん
2010/01/05(火) 12:04:38ID:???0812nobodyさん
2010/01/05(火) 14:17:40ID:???定期発言もリプライも全部OAuth認証に変えてみたけど、設置もその後も順調だ
やっぱりサーバーとかの環境によってだいぶ差があるんだな
0814nobodyさん
2010/01/05(火) 21:16:43ID:???ttps://mywebcron-com.loopiasecure.com/
0815nobodyさん
2010/01/05(火) 22:09:45ID:???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:???$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:???中カッコが足りなくて閉じ切ってないのでなんともいえない。
しいていえば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:???FileQにみんなでcurl使えるように嘆願するか?w
それとスレチだけどなんで日本には外国みたいなwebcronサービスがないんだろ
お金かかってもいいからあったら便利なのに
0820nobodyさん
2010/01/05(火) 23:02:52ID:???「ただいま」の $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:???早速ありがとう!
ソース変なところからだった…ごめんなさい。
$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:???うわっ!本当だ…すっごい恥ずかしいこれ
そこ直したら戻った気がする。一応返してきたからこれで様子見ます!
本当ありがとう…
0823nobodyさん
2010/01/05(火) 23:18:50ID:???リプライソースからcurlを消せばいいと思ってた…
そうか twitterOAuth.php自体にcurlがあったorz
5分間隔でいいならSet〜とかでいけるけど、やっぱ5分だと取得漏れが多い気がする
そしてwebcronでリプライ動かしたら破産する
自分で設定するしかないか
0824nobodyさん
2010/01/05(火) 23:22:23ID:???無料は申し訳ないからできればカンパとかしたい
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:???GAEにしようとしたんだが、Google App Engine Launcherを起動すると
See the logfire 'C:\〜GoogleAppEngineLauncher.exe.log' for details
というエラーが出るから積んだよ
再インストールしてもエラー中のlogを消してもだめだった
問題は山積みだ…
0828nobodyさん
2010/01/05(火) 23:54:54ID:???0829nobodyさん
2010/01/06(水) 01:25:16ID:???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:???0831DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/06(水) 15:53:39ID:???わざわざありがとうございます。
本格的に設計開始しましたが、あったらうれしい機能など教えていただけると開発が早く進みます
0833nobodyさん
2010/01/07(木) 02:21:36ID:???楽しみにしてます
かなりのユーザーがいくと思うので負担が大きいかもしれませんが…
cron-job.orgのようにCtrlで時間を細かく選択できたら便利かと思います
時間は1〜2分間隔希望です
0835nobodyさん
2010/01/07(木) 09:20:32ID:???0836nobodyさん
2010/01/07(木) 10:59:33ID:???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:???そのページ見てGAEにチャレンジしたけどうまくいったよ
○○Serblet.javaのファイル名は頭1文字目が大文字じゃないと上手くいかなかった気がする
0839nobodyさん
2010/01/07(木) 13:08:57ID:???Ser「b」letじゃなくてSer「v」letね…
0840nobodyさん
2010/01/07(木) 14:39:50ID:???Warning No handlers matched this URL.
ってことはURLが間違ってるって事じゃないのかな
アドレス間違ってるかもしくはGAEからのアクセス弾いちゃってるとかじゃない?
0841nobodyさん
2010/01/07(木) 15:21:15ID:???プログラムのURLが合ってても、cron.xmlの方で指定間違えてたら
Warning No handlers matched this URL.って出るよ
>>837はもう一度パス見直してみ
0843nobodyさん
2010/01/07(木) 23:26:01ID:???0845nobodyさん
2010/01/08(金) 00:42:38ID:???リプライ返しはあいさつに対してのみ行う場合なら人間っぽいbot簡単に作れるよー。
まず「つぶやき収集bot」を作って、あらゆるツイートを収集し、リプライツイートや時々内容のツイートを取り除きテキストファイルに順に格納していく。
時々内容のツイートを取り除く方法は、まずニュースサイトの記事をyahooの形態素解析APIを使って名詞を抜き出し辞書を作っておく。
そして「つぶやき収集bot」が収集したツイートも形態素解析し名詞を抜き出し、あらかじめ作った辞書を検索しその名詞が見つかればそのツイートは取り除く。
あとはテキストファイルに格納したツイートを適当に抜き出ししゃべらせる。
0846nobodyさん
2010/01/08(金) 00:47:33ID:???あるいは人間とマトモな会話ができるbot。
これはかなり時間がかかりそうだ。
0847nobodyさん
2010/01/08(金) 01:51:52ID:???0848nobodyさん
2010/01/08(金) 02:14:44ID:???品詞ごとに分けておおまかな意味を推測させようかと考えてはみたが
>>846
マトモに会話してるように見えるbotなら人工無脳にいくつかあるけど
あれらを今から作るってのは手間だしマルコフ連鎖で繋げてそれっぽく見せるのがせいぜいだろうな。
辞書登録してやるとどうしても反応できるワードには限りがあるし。
本気で知能やろうとするとと個人でやるには大変だ。
0849nobodyさん
2010/01/08(金) 02:48:09ID:???リプライとかは平気なのにTL反応のcronだけ削除されてしまいます
中身は銀さんのをほぼ丸写ししただけ。なにが悪いんだろう?
0851nobodyさん
2010/01/08(金) 04:35:57ID:???リプライは3分おきで動いてるのにTLは10分にしても消されました
もっと長くすれば大丈夫かもしれないけどTL反応の間隔が10分以上では遅すぎるし・・・
0852nobodyさん
2010/01/08(金) 04:58:44ID:???0854nobodyさん
2010/01/08(金) 06:00:29ID:???そうなのか・・・じゃあさくらサーバー使ってる人でもcronは別な所で動かしてるってことなんですかね?
リプライは平気なのにTLはダメっていうのが不思議だけど、諦めて他の方法で動かすことにします
0856nobodyさん
2010/01/08(金) 08:14:21ID:???>>841さんのいうcron.xmlでの指定ミスが原因だったようで、urlのところを直したら
すんなり動いてくれました。web.xmlからURLを確認する過程自体をすっとばしていたという、
なんともお粗末な理由でした…
助言をくださった方、ありがとうございます。botが動いて感激です。
0857nobodyさん
2010/01/08(金) 10:56:08ID:???GAEのログにファビコンが無いっていうエラーが出まくる
何かファイル追加してファビコンを指定すればいいらしいんだけど
具体的な方法がわからない…どこかに参考になるサイトとかないかな?
0859nobodyさん
2010/01/08(金) 12:18:38ID:???さくらの人が消されたのはcronの方か。
勘違いしてた
0860nobodyさん
2010/01/08(金) 17:10:10ID:voJUVX7VSDNさんを参考にして、定時はいけたんだけどリプライとTLがいまいちなんだ。
エラーも出ないでクライアント名とかリプライ元つきで返してくれているんだけど、
なんか叩くとめっちゃ返してくる…
前に答えたやつにも重複して返すし、tmpがうまく読めてないんかな。
初心者ですまない…元々銀次さんの所のコピペに頼りきりだったからどうしてすれば良いかわからないんだ。
教えてくれると凄く幸せになれるんだが…
0861nobodyさん
2010/01/08(金) 17:41:13ID:???銀さんとこのリプライソースでいいんだな?
リプライソースの中の
$ch = curl_init();
(中略)
curl_close($ch);
を全部消して、function tweetをSDNさんとこのソースに
tweetの引数は$message以外を削除、って感じで行けると思う
もちろん細かいところは適宜修正してくれ
0862nobodyさん
2010/01/08(金) 17:57:17ID:voJUVX7Vありがと。
でもごめん、その通りにしたら
<?xml version="1.0" encoding="UTF-8" ?>
- <hash>
<request>/statuses/update.xml</request>
<error>Incorrect signature</error>
</hash>
て@ページでエラーでたんだけどorz
function tweetの中が間違ってるんかな。
それともrequire_onceの場所がおかしいとか…?
もう訳わからんよ…細かいところの修正が出来てないからかな。
頭悪くてごめんな。
一回貼ったほうがわかりやすい?
0864nobodyさん
2010/01/08(金) 18:13:36ID:???あーごめん
$ch = curl_init();
(中略)
curl_close($ch);
は消さなくてもいいや(OAuth認証でTL取得しない場合は)
消した場合(OAuth認証でTLを取得する場合)は
$XML = simplexml_load_string($result);
のところも変えないと駄目
0865nobodyさん
2010/01/08(金) 18:32:53ID:voJUVX7Vお、ごめん長くて貼れなくて苦戦してた…
$XML = simplexml_load_string($result);
の部分なんだけど、ごめんどういじれば良い?
0866nobodyさん
2010/01/08(金) 18:44:15ID:???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うわーごめん、何かほんと頭悪いみたい。
TLとかリプライいじってみたけど、返事しないわ…orz
そもそも基本的なこと間違えてる気がしてならない…
ちょっと基本的な事勉強してくるわ、協力してくれてありがと。
0869nobodyさん
2010/01/08(金) 23:45:40ID:???さくらで勝手に削除されたのもそのせいだと思う
問題はその重いスクリプトを多くの人が参考にしてるってことだ
0870nobodyさん
2010/01/09(土) 00:01:26ID:???アクセストークンと認証トークンの取得までいけた。
で、APIアクセスしようとおもったら
Incorrect signatureっていわれた
これってoauth_signatureの作り方が間違ってるのかな?
0871nobodyさん
2010/01/09(土) 00:08:52ID:???自分もその表示が出て、対処方法が全然判らなかったから
一度全部消して、また最初からやり直したらいけたよ。
全然参考になってないけど…体験者より。
0873nobodyさん
2010/01/09(土) 00:15:30ID:???0874nobodyさん
2010/01/09(土) 00:19:34ID:???しかし、話題性があるから薄っぺらな内容でも
凄い事のようにマスコミが持ち上げてくれる。
0875nobodyさん
2010/01/09(土) 00:26:56ID:???直したらTweetできたやったあああああああ
0876nobodyさん
2010/01/09(土) 01:43:50ID:???PHPにアクセスするとしょっちゅうタイムアウトエラーが出るんだけど、これもそのせいかな?
そのおかげでcronがちゃんと動いていてもポストされないみたいなんだ
0877nobodyさん
2010/01/09(土) 02:05:23ID:???869じゃないけどたぶんそのせいだと思う。
cron-jobはただ単に指定したURLを叩くだけだったから、特に削除されるとかないし組み合わせ的には最適だったと思うよ。
0878nobodyさん
2010/01/09(土) 04:04:37ID:???//ポスト部分の関数
// 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:???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:???話しかけられた時、指定した単語が入ってないと「もう一回言って?」みたいな反応させたいんだけど、
こういう時はどうすればよいですか。
0885882
2010/01/09(土) 12:59:27ID:???0886nobodyさん
2010/01/09(土) 15:19:11ID:???「ライブラリを読み込む」の部分を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:???反応しないようにするにはどうしたらいいのでしょうか…
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:???ありがとうございます。
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:???0890nobodyさん
2010/01/09(土) 21:58:48ID:???どうしたもんかな…
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:???$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:???//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:???8bitnoteさんとこのスクリプトだと思うけどそこは関係ないよ
その下の
elseif( preg_match("/眠い/",$text)){ //上記で調べた自分へのリプライがなかった場合にこの処理に移る。POST内容に眠いが含まれていたら次の処理に移る
の前に@が含まれるpostを弾く処理を入れればいいはず
0895888
2010/01/10(日) 01:00:53ID:???ソースありがとうございます!
891さんのソースをコピペして動かしてみた結果、Arrayという文字だけはPOSTしてくれるようになりました。
もうちょっとどうにかしてこようとおもいます。
ありがとうございました!
0896nobodyさん
2010/01/10(日) 01:20:14ID:???回答ありがとうございます
このPHPにはbotへの@リプライとTLから特定単語を拾ってリプライする動きを書いてます
@が含まれるpostを弾くと、このbotへのリプライに反応する事ができなくなってしまいます…
また
if( $screen_name != $username){ //POSTが自分のPOSTではなかった場合にサブルーチンから抜ける
return;
}
を打ってみたのですがやはりエラーが出ました
0897nobodyさん
2010/01/10(日) 01:56:39ID:???「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:???エラー表示されないから何が何だか・・・
0899nobodyさん
2010/01/10(日) 05:42:42ID:???$username = "1111";
$key = "3333";
が何だかわからないんだけど、ごめん参考元?ってなにになるのかな?
0901nobodyさん
2010/01/10(日) 12:03:57ID:???ごめん$key要らない・・・
自分は複数BOT作ってて複数でも使いまわせるようにしてるんで、その名残だ
要らないところ削除して直したつもりが残ってたみたい
0902nobodyさん
2010/01/10(日) 12:17:50ID:???>>891のソースにはどこにも出力命令が無いんだから
ブラウザでアクセスして何も表示されないのは当たり前だろ
0903nobodyさん
2010/01/10(日) 16:18:50ID:???ごめん。真っ白になるだけでポストしないからどこかにエラーが出るはずだと思ったんだけど
さっき確認したら今まで普通に動いていた別のスクリプトでも同じ現象が起こった
そっちは弄ってないから原因は>>891ではないみたい
0904nobodyさん
2010/01/10(日) 23:13:36ID:???たまにフォローだけして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:???> $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:???早い回答ありがとう!
ついでに聞いておきたいんですが、$num = array_rand($mesi,1);の1ってなんの意味?
この中から1つ選ぶ…って事?
0908nobodyさん
2010/01/11(月) 18:07:19ID:???0909nobodyさん
2010/01/11(月) 18:12:07ID:???それが正しく帰ってきてればOKでいいじゃん。
0910nobodyさん
2010/01/11(月) 18:25:16ID:???そしてまた行き詰ったんだが、>>906やり方でやってみたら
ときどき何もランダム単語表示されない時がある…
「おかえり、今日の夕飯は ですよ」
みたいな感じ
0911nobodyさん
2010/01/11(月) 18:36:05ID:???0912nobodyさん
2010/01/11(月) 23:35:54ID:???0914nobodyさん
2010/01/12(火) 01:54:55ID:???0915nobodyさん
2010/01/12(火) 06:32:37ID:???GAEやろうとして行き詰まってたところだったから助かった!
0916nobodyさん
2010/01/12(火) 19:19:52ID:???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:???重くなってる処理はないか確認してみる
GAEはだいたい4~8秒くらいでタイムアウトになるからその分処理を軽くしなければならないよ
まあ晒せる範囲でソース晒してみたら
0920nobodyさん
2010/01/14(木) 15:32:58ID:???0921nobodyさん
2010/01/14(木) 19:33:13ID:???@pages使ってる人だと動き不安定?
一度削除して登録し直そうとしてもタイムエラー出るんだが…
0923nobodyさん
2010/01/14(木) 22:16:36ID:???demoでログインしたらサーバーのcp.phpが入ってた
チェック中なのかな?明日には直ってくれるといいね
0924nobodyさん
2010/01/14(木) 22:16:37ID:???今まで調子よかったのになんで急に…入金したばっかりなのに
0925nobodyさん
2010/01/14(木) 22:51:55ID:???有料垢だろうがjpドメインの鯖を規制してるっぽい。
0926nobodyさん
2010/01/14(木) 22:57:00ID:???0927nobodyさん
2010/01/14(木) 23:06:05ID:???0928nobodyさん
2010/01/14(木) 23:11:02ID:???XREA…(´・ω:;.:...
0929nobodyさん
2010/01/14(木) 23:27:59ID:???0931nobodyさん
2010/01/15(金) 00:30:49ID:???0932nobodyさん
2010/01/15(金) 01:11:26ID:???0933DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/15(金) 01:56:33ID:???sendmail,postfixが言う事を聞かないのでメールに頼らない認証方法を確立したいのですが、どうすれば良いでしょう…(人任せ)
せっかくTwit専用なのだしtwitterのアカウント経由で認証するのもありだと思います。
そうすれば管理もtitter経由で可能になりますし。
いかがでしょう。
0934nobodyさん
2010/01/15(金) 01:59:48ID:???jpドメインでも使えるようにする案と、場合によっては返金するよって内容のものだった。
自分は自力で使えるようになったけど一応、対応はしてくれるみたいでちょっと安心した
0935nobodyさん
2010/01/15(金) 02:03:03ID:???0936nobodyさん
2010/01/15(金) 13:49:35ID:???スクリプト中の「何分以内にもらったリプライを読み込む」を2分に、GAEのcronファイルも2分毎に更新にしてあるんだけど、どうも取りこぼしがあるみたいなんだよね。
そういうもん?
0937nobodyさん
2010/01/15(金) 14:01:44ID:???0938nobodyさん
2010/01/15(金) 14:08:56ID:???GAEが誤差があるからな
$limittime = $now - $cron * 60;
ここを変えれば良い
自分は62にしてる
それでも取りこぼしはあるけどね
あまり秒数を増やすと今度は2重投稿しちゃうよ
0939nobodyさん
2010/01/15(金) 15:58:06ID:???アメリカのでこんなの見つけたけど、使えない?
0940nobodyさん
2010/01/15(金) 16:38:38ID:???一切反応しない…
5分間隔と20分間隔にしているんだけど何が原因なんだろう
0941nobodyさん
2010/01/15(金) 17:04:16ID:???特に感情を持たせるにはどうすればいいかアイディアをくれないか?
一応疑問文に応答するアルゴリズムは大方できてるんだ。
問題は人間らしい感情をどうやって持たせるかなんだ。
0944DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/15(金) 22:00:57ID:???感情のパラメータを作成して、単語ごとにエモーショナルレベルを設けて喜、哀、憂、怒などに数値を加算して表現してはいかがか
0945nobodyさん
2010/01/15(金) 22:07:19ID:???$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:???今日は月日です。〜〜まであと日です。
ってなるんだ。
理由は私が聞きたい\(^O^)/
0948nobodyさん
2010/01/15(金) 23:32:27ID:???私も同じような事なった事あるけど、半角スペース入れたら直ったよ
0949DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/15(金) 23:49:40ID:???""でくくらなくてよくないか?
""の中に直接変数を書き込めなかったっけ
"〜〜まであと$day日です"でおkだったと思う
0950nobodyさん
2010/01/16(土) 00:08:39ID:???引数が渡ってないとかじゃないかな
取得をまるっとユーザー関数の内側に入れてみてはどうだろう
見当違いだったらごめん
0952nobodyさん
2010/01/16(土) 10:18:47ID:???0953nobodyさん
2010/01/16(土) 12:33:09ID:???URLとかRTとかノイズ除去するのがわりと手間だね。
0955nobodyさん
2010/01/16(土) 23:38:57ID:???bot製作のblogとか見ながら作ると「1人の人への連続replyはしない」ようになってるから
誰かを間に挟まないと(もしくはdata.txtの中身を消さないと)リプライしてくれない。
どうすればいいかわからん・・・。誰か教えてください
0956nobodyさん
2010/01/16(土) 23:59:48ID:???0957nobodyさん
2010/01/17(日) 00:09:41ID:???ああすまん。「銀さんのbot」と「プログラミングを始める〜」を参考に
設置サーバーも銀さんと同じところにしてる。
とあるbotが特定の言葉をつぶやいたら、それに@で返信させるようにしたいと思ってる
TLに反応させてリプライさせる「プログラミングを〜」にあったものをほぼコピペしてます
0958DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/17(日) 00:33:33ID:???botに発言してスケジュール管理です。
0959nobodyさん
2010/01/17(日) 00:41:40ID:???0962nobodyさん
2010/01/17(日) 03:18:45ID:???http://pc11.2ch.net/test/read.cgi/php/1243654802/
0963nobodyさん
2010/01/17(日) 03:27:36ID:???0964nobodyさん
2010/01/17(日) 05:30:18ID:???ここの記事のカッコに囲われた文字のみをオウム返しする機能を付けたいんだけど
phaさんのスクリプトじゃなくてbardothodolさんのスクリプトで対応させる方法がわかりません
最初そのままつっこんでみたけどやっぱり動かなかったので教えてください
0965nobodyさん
2010/01/17(日) 09:00:07ID:???0966964
2010/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:???0970nobodyさん
2010/01/17(日) 11:32:40ID:???>>961
自分もエラーが出てGAE Launcher動かないんだが
コマンドプロンプトにコマンド直打ちでデプロイ出来たよ
0971nobodyさん
2010/01/17(日) 12:50:08ID:???スレ汚し失礼しました。
0972nobodyさん
2010/01/17(日) 14:01:44ID:???スクリプトが重いのかな
0975nobodyさん
2010/01/18(月) 02:18:12ID:???ここのソースを借りてTL上の単語に反応するようにしたいと思っています。
手動でブラウザからphp叩けばきちんと動くんですが
cronで叩くと「ファイルが開けません 」というメールが返って来てしまい、動作しません
ソース見た限りではおそらくdatファイルが開けないという事だと思うんですが…
手動でやる分には問題無いのでcron側の問題でしょうか
メールでphpのエラーメッセージを持ってきているので
cronの実行コマンドのファイルパスは合っていると思います。
プログラミング・cron等は全く手をつけたことがなくて、色々調べてみたのですが
分かりませんでした。
解決方法ご存じの方いらっしゃいませんでしょうか。
0976DAWNTO_Windy-melt ◆Windy/f9HNwg
2010/01/18(月) 03:05:41ID:???ソースうpが原則です、その方がスグに解決しますよ
0977nobodyさん
2010/01/18(月) 03:13:31ID:???0978975
2010/01/18(月) 04:13:21ID:???失礼しました。ソースうpしました。
http://kissho.xii.jp/1/src/1jyou102317.txt
反応語句部分ところとusernameとpass以外いじってません。
>>977
パーミッションというとdatファイルのでしょうか?666に設定してあります。
これで手動ではきちんと動くんですが、もしかしてphpの方も設定しないといけないんでしょうか
試してみます。
0980nobodyさん
2010/01/18(月) 13:57:52ID:???今度マルコフ搭載したボット作ろうと思うんだけど、ちゃんと勉強したい
プログラムを自分で組めるまではいかなくても、改変出来る程度の知識を身に付けたいと思ってる
なんか良いおすすめの本とかあるかな?
ちなみに自分のレベルは毛の生えた初心者
0981nobodyさん
2010/01/18(月) 14:06:01ID:???マルコフ連鎖とか形態素解析とかそういうのは最低限の土台できてからであって
いきなりやろうとしてもろくなことにならんよ。
0982nobodyさん
2010/01/18(月) 14:19:22ID:scJ7qSxRgoogle_appengine_projects.ini
を探して消す。
0983nobodyさん
2010/01/18(月) 15:21:00ID:???よく解除するときはリムーブじゃなくブロックしてくれってあるのはどうしてですか?
リムーブだとなにかまずいんでしょうか
0985nobodyさん
2010/01/18(月) 15:27:26ID:???管理が面倒臭いからじゃない?
フォローしてる人に話しかけるタイプのbotだったりしたら
リムられてるのに話しかけてしまうのは迷惑だろうから
フォロワーとフォローは同じにしておきたいと思うんじゃないか
0986975
2010/01/18(月) 15:50:11ID:???cronの実行コマンドのパスでしょうか?
何度も確認してみたのですが、やはりファイルパスは合っています
正常に動くphpと同じディレクトリに入れてあるので、それをコピペしてファイル名書き換えてます
動いているもの→/usr/local/bin/php /home/*****/public_html/*****/post_random.php
動かないもの→/usr/local/bin/php /home/*****/public_html/*****/reply_tlget.php
ちなみにphpのパーミッション設定も変えてみましたが、ダメだったようです。
0988975
2010/01/18(月) 17:30:36ID:???それで動くようになりました!!
反応が不安定ですがとりあえず動くようになりました!!
不安定なのはphpの問題っぽいので自力で何とかしてみます
本当にありがとうございました!!
0990nobodyさん
2010/01/18(月) 18:04:06ID:???相当難しくなると思う。
初心者ならまず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:???複数件リプライを貰っているのに最新1件のリプライにしか反応(返事を)しない場合はどのような原因が考えられるでしょうか?
ちなみに手動で叩いてみてもやはり最新1件のリプライにしか反応しませんorz
0995テンプレ案2
2010/01/18(月) 21:52:59ID:???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テンプレ案2
2010/01/18(月) 21:53:43ID:???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:???* * * * * 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:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。