1 名前:nobodyさん [2009/09/27(日) 14:15:59 ID:Dz08qoo4] 見当たらなかったので立ててみた [公式] twitter.com/ [Twitter 開発ブログ 日本語版] twitterjp.blogspot.com/ *どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。 *初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。
840 名前:nobodyさん mailto:sage [2010/01/07(木) 14:39:50 ID:???] >>837 Warning No handlers matched this URL. ってことはURLが間違ってるって事じゃないのかな アドレス間違ってるかもしくはGAEからのアクセス弾いちゃってるとかじゃない?
841 名前:nobodyさん mailto:sage [2010/01/07(木) 15:21:15 ID:???] >>837 >>840 プログラムのURLが合ってても、cron.xmlの方で指定間違えてたら Warning No handlers matched this URL.って出るよ >>837 はもう一度パス見直してみ
842 名前:nobodyさん mailto:sage [2010/01/07(木) 23:18:40 ID:???] >>814 全然動かないんだが...
843 名前:nobodyさん mailto:sage [2010/01/07(木) 23:26:01 ID:???] FileQとphpだけで人間によく間違えられるbot作った俺が通りますよー
844 名前:nobodyさん mailto:sage [2010/01/07(木) 23:57:56 ID:???] >>843 自慢したいだけなら二度と来ないでください
845 名前:nobodyさん mailto:sage [2010/01/08(金) 00:42:38 ID:???] >>844 リプライ返しはあいさつに対してのみ行う場合なら人間っぽいbot簡単に作れるよー。 まず「つぶやき収集bot」を作って、あらゆるツイートを収集し、リプライツイートや時々内容のツイートを取り除きテキストファイルに順に格納していく。 時々内容のツイートを取り除く方法は、まずニュースサイトの記事をyahooの形態素解析APIを使って名詞を抜き出し辞書を作っておく。 そして「つぶやき収集bot」が収集したツイートも形態素解析し名詞を抜き出し、あらかじめ作った辞書を検索しその名詞が見つかればそのツイートは取り除く。 あとはテキストファイルに格納したツイートを適当に抜き出ししゃべらせる。
846 名前:nobodyさん mailto:sage [2010/01/08(金) 00:47:33 ID:???] 問題は人間の質問に答えられるbotをどう作るかだろう。 あるいは人間とマトモな会話ができるbot。 これはかなり時間がかかりそうだ。
847 名前:nobodyさん mailto:sage [2010/01/08(金) 01:51:52 ID:???] 手間をかけずに楽しめるbotを作る方がおもしろい。
848 名前:nobodyさん mailto:sage [2010/01/08(金) 02:14:44 ID:???] 自分に向けられた発言への類推は難しいよな。 品詞ごとに分けておおまかな意味を推測させようかと考えてはみたが >>846 マトモに会話してるように見えるbotなら人工無脳にいくつかあるけど あれらを今から作るってのは手間だしマルコフ連鎖で繋げてそれっぽく見せるのがせいぜいだろうな。 辞書登録してやるとどうしても反応できるワードには限りがあるし。 本気で知能やろうとするとと個人でやるには大変だ。
849 名前:nobodyさん mailto:sage [2010/01/08(金) 02:48:09 ID:???] さくらサーバーでTLに反応するPHPのcron動かしてる人っていますか? リプライとかは平気なのにTL反応のcronだけ削除されてしまいます 中身は銀さんのをほぼ丸写ししただけ。なにが悪いんだろう?
850 名前:nobodyさん mailto:sage [2010/01/08(金) 04:10:34 ID:???] >>849 cronの実行間隔が短すぎるんじゃねーの?
851 名前:nobodyさん mailto:sage [2010/01/08(金) 04:35:57 ID:???] >>850 リプライは3分おきで動いてるのにTLは10分にしても消されました もっと長くすれば大丈夫かもしれないけどTL反応の間隔が10分以上では遅すぎるし・・・
852 名前:nobodyさん mailto:sage [2010/01/08(金) 04:58:44 ID:???] さくらに聞けよ
853 名前:nobodyさん mailto:sage [2010/01/08(金) 05:32:19 ID:???] >>851 周期が1時間以内だと、消される方が正常 3分で消えないっておかしいな
854 名前:nobodyさん mailto:sage [2010/01/08(金) 06:00:29 ID:???] >>853 そうなのか・・・じゃあさくらサーバー使ってる人でもcronは別な所で動かしてるってことなんですかね? リプライは平気なのにTLはダメっていうのが不思議だけど、諦めて他の方法で動かすことにします
855 名前:nobodyさん mailto:sage [2010/01/08(金) 08:05:52 ID:???] >>848 俺の目標は、ある人が人間と思ってフォローした人たちが全員botだった、という状況を作ることなのだよ。
856 名前:nobodyさん mailto:sage [2010/01/08(金) 08:14:21 ID:???] 遅くなりましたが>>837 です >>841 さんのいうcron.xmlでの指定ミスが原因だったようで、urlのところを直したら すんなり動いてくれました。web.xmlからURLを確認する過程自体をすっとばしていたという、 なんともお粗末な理由でした… 助言をくださった方、ありがとうございます。botが動いて感激です。
857 名前:nobodyさん mailto:sage [2010/01/08(金) 10:56:08 ID:???] cron-job.orgからGAEに変えたんだけど、 GAEのログにファビコンが無いっていうエラーが出まくる 何かファイル追加してファビコンを指定すればいいらしいんだけど 具体的な方法がわからない…どこかに参考になるサイトとかないかな?
858 名前:nobodyさん mailto:sage [2010/01/08(金) 12:15:40 ID:???] >>854 さくらだけど消されてないよ。 GAEで動かしてるからかな? >>857 ブラウザでアクセスするのやめる
859 名前:nobodyさん mailto:sage [2010/01/08(金) 12:18:38 ID:???] あ、すまん。 さくらの人が消されたのはcronの方か。 勘違いしてた
860 名前:nobodyさん [2010/01/08(金) 17:10:10 ID:voJUVX7V] ごめん、OAuthの話に戻るんだけどさ SDNさんを参考にして、定時はいけたんだけどリプライとTLがいまいちなんだ。 エラーも出ないでクライアント名とかリプライ元つきで返してくれているんだけど、 なんか叩くとめっちゃ返してくる… 前に答えたやつにも重複して返すし、tmpがうまく読めてないんかな。 初心者ですまない…元々銀次さんの所のコピペに頼りきりだったからどうしてすれば良いかわからないんだ。 教えてくれると凄く幸せになれるんだが…
861 名前:nobodyさん mailto:sage [2010/01/08(金) 17:41:13 ID:???] >>860 銀さんとこのリプライソースでいいんだな? リプライソースの中の $ch = curl_init(); (中略) curl_close($ch); を全部消して、function tweetをSDNさんとこのソースに tweetの引数は$message以外を削除、って感じで行けると思う もちろん細かいところは適宜修正してくれ
862 名前:nobodyさん [2010/01/08(金) 17:57:17 ID:voJUVX7V] >>861 ありがと。 でもごめん、その通りにしたら <?xml version="1.0" encoding="UTF-8" ?> - <hash> <request>/statuses/update.xml</request> <error>Incorrect signature</error> </hash> て@ページでエラーでたんだけどorz function tweetの中が間違ってるんかな。 それともrequire_onceの場所がおかしいとか…? もう訳わからんよ…細かいところの修正が出来てないからかな。 頭悪くてごめんな。 一回貼ったほうがわかりやすい?
863 名前:nobodyさん mailto:sage [2010/01/08(金) 18:02:23 ID:???] >>862 見た方が早いことは早いかも
864 名前:nobodyさん mailto:sage [2010/01/08(金) 18:13:36 ID:???] >>862 あーごめん $ch = curl_init(); (中略) curl_close($ch); は消さなくてもいいや(OAuth認証でTL取得しない場合は) 消した場合(OAuth認証でTLを取得する場合)は $XML = simplexml_load_string($result); のところも変えないと駄目
865 名前:nobodyさん [2010/01/08(金) 18:32:53 ID:voJUVX7V] >>864 お、ごめん長くて貼れなくて苦戦してた… $XML = simplexml_load_string($result); の部分なんだけど、ごめんどういじれば良い?
866 名前:nobodyさん mailto:sage [2010/01/08(金) 18:44:15 ID:???] SDNさんとこのをそのまま使うんならこんな感じかな。ソース汚いけど if(!empty($line)){ $last_id = $line; }else{ $cnt = "1"; } $consumer_key = "consumer_key"; // Consumer keyの値 $consumer_secret = "consumer_secret"; // Consumer secretの値 $access_token = "access_token"; // Access Tokenの値 $access_token_secret = "access_token_secret"; // Access Token Secretの値 // OAuthオブジェクト生成 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); // TwitterからGETする if(($cnt != null)&&($last_id != null)){ $req = $to->OAuthRequest($host,array("count"=>$pcount,"since_id"=>$last_id),"GET"); }else if(($cnt != null)&&($last_id == null)){ $req = $to->OAuthRequest($host,array("count"=>$cnt),"GET"); }else if(($cnt == null)&&($last_id != null)){ $req = $to->OAuthRequest($host,array("since_id"=>$last_id),"GET"); }else{ $req = $to->OAuthRequest($host,array(),"GET"); } $XML = simplexml_load_string($req);
867 名前:nobodyさん mailto:sage [2010/01/08(金) 18:45:34 ID:???] うおっと、またミスった $pcountになってるところは$cntで…orz
868 名前:nobodyさん [2010/01/08(金) 20:09:05 ID:voJUVX7V] >>867 うわーごめん、何かほんと頭悪いみたい。 TLとかリプライいじってみたけど、返事しないわ…orz そもそも基本的なこと間違えてる気がしてならない… ちょっと基本的な事勉強してくるわ、協力してくれてありがと。
869 名前:nobodyさん mailto:sage [2010/01/08(金) 23:45:40 ID:???] 銀次さんのとこの方法は重くなるからcronに向かないな。 さくらで勝手に削除されたのもそのせいだと思う 問題はその重いスクリプトを多くの人が参考にしてるってことだ
870 名前:nobodyさん mailto:sage [2010/01/09(土) 00:01:26 ID:???] 自分でOAuthの実装してたんだけど、 アクセストークンと認証トークンの取得までいけた。 で、APIアクセスしようとおもったら Incorrect signatureっていわれた これってoauth_signatureの作り方が間違ってるのかな?
871 名前:nobodyさん mailto:sage [2010/01/09(土) 00:08:52 ID:???] >>870 自分もその表示が出て、対処方法が全然判らなかったから 一度全部消して、また最初からやり直したらいけたよ。 全然参考になってないけど…体験者より。
872 名前:nobodyさん mailto:sage [2010/01/09(土) 00:09:55 ID:???] >>871 マジか・・・
873 名前:nobodyさん mailto:sage [2010/01/09(土) 00:15:30 ID:???] ついったは人工無能の分野でも研究対象になんのかな
874 名前:nobodyさん mailto:sage [2010/01/09(土) 00:19:34 ID:???] ぜんぜんならない、効率悪い。 しかし、話題性があるから薄っぺらな内容でも 凄い事のようにマスコミが持ち上げてくれる。
875 名前:nobodyさん mailto:sage [2010/01/09(土) 00:26:56 ID:???] シグネチャ作るときのURLが固定だったのが原因だった 直したらTweetできたやったあああああああ
876 名前:nobodyさん mailto:sage [2010/01/09(土) 01:43:50 ID:???] >>869 PHPにアクセスするとしょっちゅうタイムアウトエラーが出るんだけど、これもそのせいかな? そのおかげでcronがちゃんと動いていてもポストされないみたいなんだ
877 名前:nobodyさん mailto:sage [2010/01/09(土) 02:05:23 ID:???] >>876 869じゃないけどたぶんそのせいだと思う。 cron-jobはただ単に指定したURLを叩くだけだったから、特に削除されるとかないし組み合わせ的には最適だったと思うよ。
878 名前:nobodyさん mailto:sage [2010/01/09(土) 04:04:37 ID:???] >>860-868 あたりを読んで自分なりに実装したんだけどちっとも動いてくれない…。 //ポスト部分の関数 // OAuthオブジェクト生成 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret,$message); function tweet($username,$password,$id) { $message = urlencode($message); $ch = curl_init(); ★$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>"$message"),"POST"); curl_close($ch); } header("Content-Type: application/xml"); echo $req; という風にしたら「Fatal error: Call to a member function OAuthRequest() on a non-object in★の行」というエラーが出てきてしまう…。 OAuthでリプライできてる方、ポスト部分はどうなってますでしょうか。 鯖はロリポでPHP5みたいです。
879 名前:nobodyさん mailto:sage [2010/01/09(土) 04:05:19 ID:???] わあなんだか余計な改行が挟まれてる 見にくくてすいません…
880 名前:nobodyさん mailto:sage [2010/01/09(土) 11:14:41 ID:???] >>878 function tweet$username,$password,$id)を、 function tweet($consumer_key,$consumer_secret,$access_token,$access_token_secret,$message,$to)にするか、 $toをfunction内に書けば多分エラーが出なくなるはず urlencodeは書いておいたほうがいいかもしれないけど、とりあえずcurlは書かなくておk でもこれだといちいち呼び出さなきゃいけないから、適当なところに$toと$reqを書いたほうが楽だし軽くなると思う
881 名前:nobodyさん mailto:sage [2010/01/09(土) 12:06:30 ID:???] ここの人たちはわかってるんだろうけど、最近は特定ワードを拾ってきて 無差別でフォローしてない相手にもリプライするbotが目に付くようになったね。 ああいうつまんないことで反感買って印象悪くするのは避けたいもんだね。
882 名前:nobodyさん mailto:sage [2010/01/09(土) 12:08:43 ID:???] プログラミングができなくても〜を参考にbot作ってます。 話しかけられた時、指定した単語が入ってないと「もう一回言って?」みたいな反応させたいんだけど、 こういう時はどうすればよいですか。
883 名前:nobodyさん mailto:sage [2010/01/09(土) 12:27:07 ID:???] >>882 話しかけられた内容に指定ワードがあるかを検索したらいいだけだと思うが
884 名前:nobodyさん mailto:sage [2010/01/09(土) 12:55:12 ID:???] >>882 phaさんが設置したbot用掲示板に書いてある すこしはログ見るとかしてみないか?
885 名前:882 mailto:sage [2010/01/09(土) 12:59:27 ID:???] 本当だ、ちゃんと見てなかった・・・失礼しました
886 名前:nobodyさん mailto:sage [2010/01/09(土) 15:19:11 ID:???] 8bitさんのスクリプトをOAuthで動かしたくていろいろ弄ってるんだけどうまくいかない 「ライブラリを読み込む」の部分をSDNさんの「twitterOAuth.phpを読み込む」に 「Twitterからタイムラインを取得」をSDNさんの「例えば、TLを取得するのなら」に それぞれ変更してるんだけど Warning: array_reverse() [function.array-reverse]: The argument should be an array in /home~.php on line 33 ($reply = array_reverse($reply);の行) Warning: Invalid argument supplied for foreach() in /home~.php on line 41 (foreach($reply as $rep){ の行) というエラーが出る。これってTLが読み込めてないってことなのかな? もしかしたら全然見当違いなことしてるかもしれない・・・
887 名前:nobodyさん mailto:sage [2010/01/09(土) 15:55:13 ID:???] 自分宛以外のリプレイで「@nantoka こんにちわ」という文にbotが「こんにちわ」に 反応しないようにするにはどうしたらいいのでしょうか… if( $screen_name == $username){ //POSTが自分のPOSTだった場合にサブルーチンから抜ける return; } if( preg_match("/\@$username/",$text)){ //POST内容に「/」で囲まれた中で書かれた文字列(この場合$username=@botのアカウント(自分へのリプライ))を探し、あった場合に次の処理に入る。無かったら対応する括弧以降へ飛ぶ if( preg_match("/RT/",$text)){ //POST内に「RT」があるかどうか調べる return; //「RT」がPOST内にあったので、処理を中断してサブルーチンから抜ける } ここらへんを変更するのかな?と思って色々触ってるのですが、どうしてもできません…
888 名前:nobodyさん mailto:sage [2010/01/09(土) 17:27:25 ID:???] >>880 ありがとうございます。 ttp://mini.bitter.jp/oauth_reply.txt アドバイスを見ながら書いてみたものが上のURLの物になります($toをfunction tweet()の下に入れてみました) が、このようにすると XML パースエラー: 要素が見つかりません。 URL: http://〜oauth_reply.php 行番号: 1, 列番号: 1: というエラーが出てきてしまいます。このエラーでググってみてもイマイチこの場合と結びつかないというか…。
889 名前:nobodyさん mailto:sage [2010/01/09(土) 20:41:00 ID:???] oAuthにむりに固執しなくていいんじゃない?
890 名前:nobodyさん mailto:sage [2010/01/09(土) 21:58:48 ID:???] 6月以降はベーシック認証が「非推奨」になるんだっけ どうしたもんかな…
891 名前:nobodyさん mailto:sage [2010/01/09(土) 22:17:16 ID:???] きちんと検証してないけど、こんな感じで動かないかな? <?php $username = "1111"; $key = "3333"; $consumer_key = "4444"; $consumer_secret = "5555"; $access_token = "6666"; $access_token_secret = "7777"; $filename = "data/data.dat"; $host = "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);
892 名前:nobodyさん mailto:sage [2010/01/09(土) 22:18:02 ID:???] >>891 の続き $i = count($XML)-1; $j = 0; while($i >= $j) { $var = $XML->status[$i]->text; $com = ereg_replace("\@$username", "", $var); $id= $XML->status[$i]->id; $reply_name = $XML->status[$i]->user->screen_name; $name = $XML->status[$i]->user->name; $message = serif($reply_name,$name,$com); //かえって来た値がnullじゃない場合のみ投稿する if ($message != null){ tweetOAuth($message,$id,$key,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret); } $i--; } $string = $XML->status[0]->id; if(!empty($string)){ $dat = (string)$string; file_put_contents($filename,$dat,LOCK_EX); } function serif($reply_name,$name,$com){ (省略) }
893 名前:nobodyさん mailto:sage [2010/01/09(土) 22:19:03 ID:???] >>892 の続き //OAuth経由でTwitterに投稿する function tweetOAuth($message,$id,$key,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret){ require_once("twitterOAuth.php"); $message = mb_convert_encoding($message, "UTF-8","ASCII,JIS,UTF-8,EUC-JP,SJIS"); // OAuthオブジェクト生成 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); // TwitterへPOSTする。パラメーターは配列に格納する $req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message,"in_reply_to_status_id"=>"$id"),"POST"); } //OAuth経由でTwitterから取得 function getObjOAuth($host,$cnt,$last_id,$consumer_key,$consumer_secret,$consumer_secret,$access_token,$access_token_secret){ require_once("twitterOAuth.php"); // OAuthオブジェクト生成 $to = new TwitterOAuth($host,$consumer_key,$consumer_secret,$access_token,$access_token_secret); // TwitterからGETする if(($cnt != null)&&($last_id != null)){ $req = $to->OAuthRequest($host,array("count"=>$cnt,"since_id"=>$last_id),"GET"); }else if(($cnt != null)&&($last_id == null)){ $req = $to->OAuthRequest($host,array("count"=>$cnt),"GET"); }else if(($cnt == null)&&($last_id != null)){ $req = $to->OAuthRequest($host,array("since_id"=>$last_id),"GET"); }else{ $req = $to->OAuthRequest($host,array(),"GET"); } $req_array = simplexml_load_string($req); return $req_array; } ?>
894 名前:nobodyさん mailto:sage [2010/01/09(土) 22:31:57 ID:???] >>887 8bitnoteさんとこのスクリプトだと思うけどそこは関係ないよ その下の elseif( preg_match("/眠い/",$text)){ //上記で調べた自分へのリプライがなかった場合にこの処理に移る。POST内容に眠いが含まれていたら次の処理に移る の前に@が含まれるpostを弾く処理を入れればいいはず
895 名前:888 mailto:sage [2010/01/10(日) 01:00:53 ID:???] >>891-893 ソースありがとうございます! 891さんのソースをコピペして動かしてみた結果、Arrayという文字だけはPOSTしてくれるようになりました。 もうちょっとどうにかしてこようとおもいます。 ありがとうございました!
896 名前:nobodyさん mailto:sage [2010/01/10(日) 01:20:14 ID:???] >>894 回答ありがとうございます このPHPにはbotへの@リプライとTLから特定単語を拾ってリプライする動きを書いてます @が含まれるpostを弾くと、このbotへのリプライに反応する事ができなくなってしまいます… また if( $screen_name != $username){ //POSTが自分のPOSTではなかった場合にサブルーチンから抜ける return; } を打ってみたのですがやはりエラーが出ました
897 名前:nobodyさん mailto:sage [2010/01/10(日) 01:56:39 ID:???] >>896 「botへのリプライ以外の」@を弾くだけだから大丈夫なはずだけど… ちなみにうちではこんな感じで、反応語のチェックはswitchで書いてる if( $screen_name == $username){ //POSTが自分のPOSTだった場合にサブルーチンから抜ける return; }if( preg_match("/\@$username/",$text)){ //POST内容にry (略) }elseif(! preg_match("/^[0-5]{0,1}$/",$now_g)){ //botが寝てる0〜5時台でなければTL反応させる switch(true){ case preg_match("/\@/",$text) : return; //他の人への@ならサブルーチンから抜ける←これでbot宛以外のリプライには反応しない break; (略) default : return; break; } } else{return;}
898 名前:nobodyさん mailto:sage [2010/01/10(日) 05:42:07 ID:???] >>891 の通りにやってみたら、PHPにアクセスすると真っ白の画面が出るようになってしまった エラー表示されないから何が何だか・・・
899 名前:nobodyさん mailto:sage [2010/01/10(日) 05:42:42 ID:???] >>891 の $username = "1111"; $key = "3333"; が何だかわからないんだけど、ごめん参考元?ってなにになるのかな?
900 名前:nobodyさん mailto:sage [2010/01/10(日) 10:42:09 ID:???] >>899 えっ
901 名前:nobodyさん mailto:sage [2010/01/10(日) 12:03:57 ID:???] >>899 ごめん$key要らない・・・ 自分は複数BOT作ってて複数でも使いまわせるようにしてるんで、その名残だ 要らないところ削除して直したつもりが残ってたみたい
902 名前:nobodyさん mailto:sage [2010/01/10(日) 12:17:50 ID:???] >>898 >>891 のソースにはどこにも出力命令が無いんだから ブラウザでアクセスして何も表示されないのは当たり前だろ
903 名前:nobodyさん mailto:sage [2010/01/10(日) 16:18:50 ID:???] >>902 ごめん。真っ白になるだけでポストしないからどこかにエラーが出るはずだと思ったんだけど さっき確認したら今まで普通に動いていた別のスクリプトでも同じ現象が起こった そっちは弄ってないから原因は>>891 ではないみたい
904 名前:nobodyさん mailto:sage [2010/01/10(日) 23:13:36 ID:???] 自動フォロー返し時にDM送るようにしてるんだけど たまにフォローだけしてDM送られなかったりフォロー失敗してDMだけ送られたりする この問題解消するときってどうすりゃいいのかな
905 名前:nobodyさん mailto:sage [2010/01/11(月) 17:34:10 ID:???] すみません初心者で簡単な質問ですが、分かる方は教えて頂けると助かります… (例)「おかえり、今日の夕飯は○○ですよ」 という文章で、○○の部分をランダムで変えたいのですがプログラムが分かりません $mesi = array("和食","洋食","中華"); と書いて、 $mes['night'] = array( //夜の時間に発言 "おかえり、今日の夕飯は $mesi ですよ"); とやっているのですが、「おかえり、今日の夕飯はArrayですよ」と表示されてしまいます
906 名前:DAWNTO_Windy-melt ◆Windy/f9HNwg mailto:sage [2010/01/11(月) 17:40:24 ID:???] >>905 > $mesi = array("和食","洋食","中華"); > > と書いて、 > > $mes['night'] = array( //夜の時間に発言 > "おかえり、今日の夕飯は $mesi ですよ"); $mesi = array("和食","洋食","中華"); $num = array_rand($mesi,1); $mes['night'] = array( "おかえり、今日の夕飯は $mesi[$num] ですよ"); でいいと思う。
907 名前:nobodyさん mailto:sage [2010/01/11(月) 18:02:52 ID:???] >>906 早い回答ありがとう! ついでに聞いておきたいんですが、$num = array_rand($mesi,1);の1ってなんの意味? この中から1つ選ぶ…って事?
908 名前:nobodyさん mailto:sage [2010/01/11(月) 18:07:19 ID:???] つ公式PHPマニュアル
909 名前:nobodyさん mailto:sage [2010/01/11(月) 18:12:07 ID:???] API叩いた後に応答情報あるでしょ。 それが正しく帰ってきてればOKでいいじゃん。
910 名前:nobodyさん mailto:sage [2010/01/11(月) 18:25:16 ID:???] php叩いても成功した時はなにも文章が出てきません… そしてまた行き詰ったんだが、>>906 やり方でやってみたら ときどき何もランダム単語表示されない時がある… 「おかえり、今日の夕飯は ですよ」 みたいな感じ
911 名前:nobodyさん mailto:sage [2010/01/11(月) 18:36:05 ID:???] 飯抜きだったんだよ
912 名前:nobodyさん mailto:sage [2010/01/11(月) 23:35:54 ID:???] だれうま
913 名前:nobodyさん mailto:sage [2010/01/11(月) 23:48:16 ID:???] >>910 だが、自力でどうにかなった >>906 の方法じゃないけどなぜか出来たのでこれで十分だ
914 名前:nobodyさん mailto:sage [2010/01/12(火) 01:54:55 ID:???] 自己解決したままじゃなくてどうやって解決したまで書かないと
915 名前:nobodyさん mailto:sage [2010/01/12(火) 06:32:37 ID:???] >>849 ですが8bitさんのスクリプトを使ってみたらさくらでもcron消されませんでした GAEやろうとして行き詰まってたところだったから助かった!
916 名前:nobodyさん mailto:sage [2010/01/12(火) 19:19:52 ID:???] @をもらうとおみくじを返す系のbotを製作中の初心者です。 phpを2分おきにGAEのcronで叩いてるんですが、タイムアウトにひっかかっているらしく、 たとえば30分以内の@に対しおみくじを返すように設定しても15回中5〜8回程度しか返って来ません。 これを「ひとつの@につきひとつのリプライを返す」というふうに、php側で処理することは可能でしょうか? GAEのtask queuesも試してみたんですが、This queue is empty.と出て動きません。 きっと非常に初歩的なミスをしているのだと思いますが、どちらかについてご存知の方は ご助言をお願いしますorz
917 名前:nobodyさん mailto:sage [2010/01/12(火) 19:59:34 ID:???] リプライしても無視し続けたらボットだってバレるかな?
918 名前:nobodyさん mailto:sage [2010/01/12(火) 21:19:02 ID:???] >>916 重くなってる処理はないか確認してみる GAEはだいたい4~8秒くらいでタイムアウトになるからその分処理を軽くしなければならないよ まあ晒せる範囲でソース晒してみたら
919 名前:nobodyさん mailto:sage [2010/01/12(火) 23:28:49 ID:???] >>916 同文の投稿制限にひっかかってるとかもあるんじゃないのか
920 名前:nobodyさん mailto:sage [2010/01/14(木) 15:32:58 ID:???] 投稿関係でうまくいかないときって、連投規制に引っかかってることが多いよ
921 名前:nobodyさん mailto:sage [2010/01/14(木) 19:33:13 ID:???] ttp://www.setcronjob.com/って今 @pages使ってる人だと動き不安定? 一度削除して登録し直そうとしてもタイムエラー出るんだが…
922 名前:nobodyさん mailto:sage [2010/01/14(木) 22:14:43 ID:???] >>921 さくらでもタイムエラー出る…
923 名前:nobodyさん mailto:sage [2010/01/14(木) 22:16:36 ID:???] サーバー自体がおかしいのかね demoでログインしたらサーバーのcp.phpが入ってた チェック中なのかな?明日には直ってくれるといいね
924 名前:nobodyさん mailto:sage [2010/01/14(木) 22:16:37 ID:???] 途中送信した。 今まで調子よかったのになんで急に…入金したばっかりなのに
925 名前:nobodyさん mailto:sage [2010/01/14(木) 22:51:55 ID:???] SetCronJobはもう、このURLに達することができません。 誤り: 接続は外で調節しました。 有料垢だろうがjpドメインの鯖を規制してるっぽい。
926 名前:nobodyさん mailto:sage [2010/01/14(木) 22:57:00 ID:???] えええ金取ってそれって詐欺じゃん
927 名前:nobodyさん mailto:sage [2010/01/14(木) 23:06:05 ID:???] 垢自体は凍結されてないので@PAGEからXREAに変えたら使えた。
928 名前:nobodyさん mailto:sage [2010/01/14(木) 23:11:02 ID:???] 申し訳ございません。 現在、一般向け無料サーバーの募集は行っておりません。 次期募集をお待ち下さい。 XREA…(´・ω:;.:...
929 名前:nobodyさん mailto:sage [2010/01/14(木) 23:27:59 ID:???] 完全に金かけずにやるのはもう厳しいな
930 名前:nobodyさん mailto:sage [2010/01/14(木) 23:30:28 ID:???] >>845 詳しい作り方をblogとかに公開すればアクセス稼げるよきっと
931 名前:nobodyさん mailto:sage [2010/01/15(金) 00:30:49 ID:???] URL転送サービスでURL変えて登録だと動かない?
932 名前:nobodyさん mailto:sage [2010/01/15(金) 01:11:26 ID:???] GAE使えば無料じゃないか
933 名前:DAWNTO_Windy-melt ◆Windy/f9HNwg mailto:sage [2010/01/15(金) 01:56:33 ID:???] どうも。cronのクローン作るとか言っていた香具師です。 sendmail,postfixが言う事を聞かないのでメールに頼らない認証方法を確立したいのですが、どうすれば良いでしょう…(人任せ) せっかくTwit専用なのだしtwitterのアカウント経由で認証するのもありだと思います。 そうすれば管理もtitter経由で可能になりますし。 いかがでしょう。
934 名前:nobodyさん mailto:sage [2010/01/15(金) 01:59:48 ID:???] SetCronJobの有料垢だけど、管理者からメールきてて jpドメインでも使えるようにする案と、場合によっては返金するよって内容のものだった。 自分は自力で使えるようになったけど一応、対応はしてくれるみたいでちょっと安心した
935 名前:nobodyさん mailto:sage [2010/01/15(金) 02:03:03 ID:???] 無料でもjpドメイン使えるようになって欲しいな…
936 名前:nobodyさん mailto:sage [2010/01/15(金) 13:49:35 ID:???] phaさんのリプライスクリプトにGAEを組み合わせて使ってるんだけど、 スクリプト中の「何分以内にもらったリプライを読み込む」を2分に、GAEのcronファイルも2分毎に更新にしてあるんだけど、どうも取りこぼしがあるみたいなんだよね。 そういうもん?
937 名前:nobodyさん mailto:sage [2010/01/15(金) 14:01:44 ID:???] そうでもない
938 名前:nobodyさん mailto:sage [2010/01/15(金) 14:08:56 ID:???] >>936 GAEが誤差があるからな $limittime = $now - $cron * 60; ここを変えれば良い 自分は62にしてる それでも取りこぼしはあるけどね あまり秒数を増やすと今度は2重投稿しちゃうよ
939 名前:nobodyさん mailto:sage [2010/01/15(金) 15:58:06 ID:???] ttp://www.onlinecronjobs.com/ アメリカのでこんなの見つけたけど、使えない?
940 名前:nobodyさん mailto:sage [2010/01/15(金) 16:38:38 ID:???] @pages使いでFree Web Cron Serviceでcron設定してるんだけど 一切反応しない… 5分間隔と20分間隔にしているんだけど何が原因なんだろう