[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/26 21:14 / Filesize : 264 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Twitter】 BOT製作支援スレ



1 名前:nobodyさん [2009/09/27(日) 14:15:59 ID:Dz08qoo4]
見当たらなかったので立ててみた

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

*どの言語でもOKですがソースを書く際は何の言語なのかも記載してください。
*初心者のために、なるべくぶつ切りのソースではなく全体的に載せてほしいです。


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分間隔にしているんだけど何が原因なんだろう

941 名前:nobodyさん mailto:sage [2010/01/15(金) 17:04:16 ID:???]
今人間と会話できるbot作ってるんだけど、アルゴリズムが難しいんだ。
特に感情を持たせるにはどうすればいいかアイディアをくれないか?

一応疑問文に応答するアルゴリズムは大方できてるんだ。
問題は人間らしい感情をどうやって持たせるかなんだ。

942 名前:nobodyさん mailto:sage [2010/01/15(金) 19:36:41 ID:???]
>>938
おーありがとう!
ためしてみますー

943 名前:nobodyさん mailto:sage [2010/01/15(金) 19:42:55 ID:???]
>>941
そいつに死ねと言ったら死ぬかな?

944 名前:DAWNTO_Windy-melt ◆Windy/f9HNwg mailto:sage [2010/01/15(金) 22:00:57 ID:???]
>>941
感情のパラメータを作成して、単語ごとにエモーショナルレベルを設けて喜、哀、憂、怒などに数値を加算して表現してはいかがか

945 名前:nobodyさん mailto:sage [2010/01/15(金) 22:07:19 ID:???]
date_default_timezone_set('Asia/Tokyo');
$today = getdate();
$day1 = (55-date(z));

で日付取得と残り日数を計算して
今日は${today['mon']}月${today['mday']}日です。〜〜まであと".$day1."日です
っていうカウントダウンをポストしているんだが、定期だとうまく行くんだがリプレイだと日付が取得できないんだ。
リプライに対応するためにはソース書きなおさなきゃだめなのかな?

946 名前:nobodyさん mailto:sage [2010/01/15(金) 22:25:00 ID:???]
なんでリプライだと日付が取得できんの?

947 名前:nobodyさん mailto:sage [2010/01/15(金) 23:08:29 ID:???]
今日は${today['mon']}月${today['mday']}日です。〜〜まであと".$day1."日です
今日は月日です。〜〜まであと日です。
ってなるんだ。
理由は私が聞きたい\(^O^)/



948 名前:nobodyさん mailto:sage [2010/01/15(金) 23:32:27 ID:???]
両脇に半角スペース入れてみたら?
私も同じような事なった事あるけど、半角スペース入れたら直ったよ

949 名前:DAWNTO_Windy-melt ◆Windy/f9HNwg mailto:sage [2010/01/15(金) 23:49:40 ID:???]
>>947
""でくくらなくてよくないか?
""の中に直接変数を書き込めなかったっけ
"〜〜まであと$day日です"でおkだったと思う

950 名前:nobodyさん mailto:sage [2010/01/16(土) 00:08:39 ID:???]
>>947
引数が渡ってないとかじゃないかな
取得をまるっとユーザー関数の内側に入れてみてはどうだろう

見当違いだったらごめん

951 名前:nobodyさん mailto:sage [2010/01/16(土) 10:17:49 ID:???]
>>947
その中の変数を取得してから表示するまで処理ごとに表示してみればいんでないの。

952 名前:nobodyさん mailto:sage [2010/01/16(土) 10:18:47 ID:???]
変数のセットが関数外で、表示は関数内なのにglobal宣言してないとかはよくある話。

953 名前:nobodyさん mailto:sage [2010/01/16(土) 12:33:09 ID:???]
フレンド発言取り込んでマルコフ連鎖にしてるbot作ってみてるけど
URLとかRTとかノイズ除去するのがわりと手間だね。

954 名前:nobodyさん mailto:sage [2010/01/16(土) 21:29:27 ID:???]
>>944
なるほどフムフム

955 名前:nobodyさん mailto:sage [2010/01/16(土) 23:38:57 ID:???]
1つのbotに絡み続けるbotを作ってるんだけど
bot製作のblogとか見ながら作ると「1人の人への連続replyはしない」ようになってるから
誰かを間に挟まないと(もしくはdata.txtの中身を消さないと)リプライしてくれない。
どうすればいいかわからん・・・。誰か教えてください

956 名前:nobodyさん mailto:sage [2010/01/16(土) 23:59:48 ID:???]
どのブログを見てどういうbotを使ってんのか説明してもらわんとエスパーじゃないんでわからんよ。


957 名前:nobodyさん mailto:sage [2010/01/17(日) 00:09:41 ID:???]
>>956
ああすまん。「銀さんのbot」と「プログラミングを始める〜」を参考に
設置サーバーも銀さんと同じところにしてる。
とあるbotが特定の言葉をつぶやいたら、それに@で返信させるようにしたいと思ってる
TLに反応させてリプライさせる「プログラミングを〜」にあったものをほぼコピペしてます




958 名前:DAWNTO_Windy-melt ◆Windy/f9HNwg mailto:sage [2010/01/17(日) 00:33:33 ID:???]
自分のブログにも書いたりしてますが、cron-jobのクローンの設定法はtwitter経由でいいですか?
botに発言してスケジュール管理です。

959 名前:nobodyさん mailto:sage [2010/01/17(日) 00:41:40 ID:???]
botにfollowers抜かれた\(^o^)/

960 名前:nobodyさん mailto:sage [2010/01/17(日) 00:42:19 ID:???]
>>957
落ちついて処理を一歩一歩理解するんだ
それでも分からなかったら聞け

961 名前:nobodyさん mailto:sage [2010/01/17(日) 03:12:32 ID:???]
>>827
>>829
と同じようにGAEが起動できなくなってしまったんだが…
原因がわからん。わかる人いないかな…

962 名前:nobodyさん mailto:sage [2010/01/17(日) 03:18:45 ID:???]
Google App Engine 2アプ目
pc11.2ch.net/test/read.cgi/php/1243654802/

963 名前:nobodyさん mailto:sage [2010/01/17(日) 03:27:36 ID:???]
ボットジェネレーターの質問とかもここでしていいの?

964 名前:nobodyさん mailto:sage [2010/01/17(日) 05:30:18 ID:???]
ttp://mukurobot.blog101.fc2.com/blog-entry-5.html
ここの記事のカッコに囲われた文字のみをオウム返しする機能を付けたいんだけど
phaさんのスクリプトじゃなくてbardothodolさんのスクリプトで対応させる方法がわかりません

最初そのままつっこんでみたけどやっぱり動かなかったので教えてください

965 名前:nobodyさん mailto:sage [2010/01/17(日) 09:00:07 ID:???]
動かない時はエラーメッセージを読もう

966 名前:964 mailto:sage [2010/01/17(日) 09:19:39 ID:???]
エラーは出てなくて、特定ワードを含まない時のリプライが返ってきたんだ
bardothodolさんのとこのと色々当てはめてやってみたんだけど
$replies2も$iも見当たらなくて何に当てはめ直せばいいのかがわからなかったorz
もうちょっと睨めっこしてみます

967 名前:nobodyさん mailto:sage [2010/01/17(日) 09:36:11 ID:???]
そういう時は変数の中身を出力してみてどこで想定外の動作になっているか確認するんだ



968 名前:nobodyさん mailto:sage [2010/01/17(日) 09:41:25 ID:???]
ボットジェネレーターの質問もここでいいのかわからないけど質問。

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

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

こう二行やるのと

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

こうやるの、どっちがちゃんと動くんでしょうか

969 名前:nobodyさん mailto:sage [2010/01/17(日) 09:49:32 ID:???]
そのBOTのコードによる

970 名前:nobodyさん mailto:sage [2010/01/17(日) 11:32:40 ID:???]
>>827
>>961
自分もエラーが出てGAE Launcher動かないんだが
コマンドプロンプトにコマンド直打ちでデプロイ出来たよ

971 名前:nobodyさん mailto:sage [2010/01/17(日) 12:50:08 ID:???]
>968ですが自己解決しました。前者で動くみたいです。
スレ汚し失礼しました。

972 名前:nobodyさん mailto:sage [2010/01/17(日) 14:01:44 ID:???]
GAEのcronでリプライに反応するプログラム動かすと、失敗ばっかりしてる。
スクリプトが重いのかな

973 名前:nobodyさん mailto:sage [2010/01/17(日) 23:27:52 ID:???]
>>972
そうだね

974 名前:nobodyさん mailto:sage [2010/01/18(月) 00:50:08 ID:???]
>>972
Twitterに単純にPostするだけのスクリプトと比べて重いの?

975 名前:nobodyさん mailto:sage [2010/01/18(月) 02:18:12 ID:???]
ttp://d.hatena.ne.jp/bardothodol/20090930#p1
ここのソースを借りてTL上の単語に反応するようにしたいと思っています。
手動でブラウザからphp叩けばきちんと動くんですが
cronで叩くと「ファイルが開けません 」というメールが返って来てしまい、動作しません
ソース見た限りではおそらくdatファイルが開けないという事だと思うんですが…
手動でやる分には問題無いのでcron側の問題でしょうか
メールでphpのエラーメッセージを持ってきているので
cronの実行コマンドのファイルパスは合っていると思います。
プログラミング・cron等は全く手をつけたことがなくて、色々調べてみたのですが
分かりませんでした。
解決方法ご存じの方いらっしゃいませんでしょうか。

976 名前:DAWNTO_Windy-melt ◆Windy/f9HNwg mailto:sage [2010/01/18(月) 03:05:41 ID:???]
>>975
ソースうpが原則です、その方がスグに解決しますよ

977 名前:nobodyさん mailto:sage [2010/01/18(月) 03:13:31 ID:???]
パーミッション設定してないだけじゃねーの?



978 名前:975 mailto:sage [2010/01/18(月) 04:13:21 ID:???]
>>976
失礼しました。ソースうpしました。
kissho.xii.jp/1/src/1jyou102317.txt
反応語句部分ところとusernameとpass以外いじってません。

>>977
パーミッションというとdatファイルのでしょうか?666に設定してあります。
これで手動ではきちんと動くんですが、もしかしてphpの方も設定しないといけないんでしょうか
試してみます。

979 名前:nobodyさん mailto:sage [2010/01/18(月) 13:08:22 ID:???]
>>978
cronを使うと途端にファイルが開けなくなる場合は、ファイルのパス指定で間違えてるのがほとんど。

980 名前:nobodyさん mailto:sage [2010/01/18(月) 13:57:52 ID:???]
スレ違いかもしれないけど、良かったら教えてほしい
今度マルコフ搭載したボット作ろうと思うんだけど、ちゃんと勉強したい
プログラムを自分で組めるまではいかなくても、改変出来る程度の知識を身に付けたいと思ってる
なんか良いおすすめの本とかあるかな?
ちなみに自分のレベルは毛の生えた初心者


981 名前:nobodyさん mailto:sage [2010/01/18(月) 14:06:01 ID:???]
プログラム全くわかんないならまずphp初心者スレでも見てあそこのテンプレのURL一通り見てくればいんじゃないの。
マルコフ連鎖とか形態素解析とかそういうのは最低限の土台できてからであって
いきなりやろうとしてもろくなことにならんよ。

982 名前:nobodyさん [2010/01/18(月) 14:19:22 ID:scJ7qSxR]
>>829
google_appengine_projects.ini
を探して消す。

983 名前:nobodyさん mailto:sage [2010/01/18(月) 15:21:00 ID:???]
bot製作者の方に質問なんですが
よく解除するときはリムーブじゃなくブロックしてくれってあるのはどうしてですか?
リムーブだとなにかまずいんでしょうか

984 名前:nobodyさん mailto:sage [2010/01/18(月) 15:27:16 ID:???]
>>983
リムーブされてもbotからのフォローが残るからでは?

985 名前:nobodyさん mailto:sage [2010/01/18(月) 15:27:26 ID:???]
>>983
管理が面倒臭いからじゃない?
フォローしてる人に話しかけるタイプのbotだったりしたら
リムられてるのに話しかけてしまうのは迷惑だろうから
フォロワーとフォローは同じにしておきたいと思うんじゃないか

986 名前:975 mailto:sage [2010/01/18(月) 15:50:11 ID:???]
>>979
cronの実行コマンドのパスでしょうか?
何度も確認してみたのですが、やはりファイルパスは合っています
正常に動くphpと同じディレクトリに入れてあるので、それをコピペしてファイル名書き換えてます
動いているもの→/usr/local/bin/php /home/*****/public_html/*****/post_random.php
動かないもの→/usr/local/bin/php /home/*****/public_html/*****/reply_tlget.php

ちなみにphpのパーミッション設定も変えてみましたが、ダメだったようです。

987 名前:nobodyさん mailto:sage [2010/01/18(月) 16:19:57 ID:???]
>>986
$filenameの方を絶対パスにしてみて



988 名前:975 mailto:sage [2010/01/18(月) 17:30:36 ID:???]
>>987
それで動くようになりました!!
反応が不安定ですがとりあえず動くようになりました!!
不安定なのはphpの問題っぽいので自力で何とかしてみます
本当にありがとうございました!!


989 名前:nobodyさん mailto:sage [2010/01/18(月) 17:55:35 ID:???]
>>988

>>979だけど説明悪くてすまなかった

990 名前:nobodyさん mailto:sage [2010/01/18(月) 18:04:06 ID:???]
>>980
相当難しくなると思う。
初心者ならまずphpでいろんなbot作って基礎を確実にして。

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

個人的に思うんだが、マルコフ連鎖を使って呟かせるより他の人の過去の呟きを拾ってbotに呟かせたほうがより人間っぽいと思う。まぁ楽しむ目的でbotつくるならマルコフ連鎖でもいいけど。

991 名前:nobodyさん mailto:sage [2010/01/18(月) 20:03:50 ID:???]
そういや次スレはどうするんだ?

992 名前:テンプレ案1(GAEのがj.mpになってるのはURLが長かったから) mailto:sage [2010/01/18(月) 21:45:52 ID:???]
プログラムとかわかりません><
twittbot.net/

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

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

Ruby
twitter4r.rubyforge.org/

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

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

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

GoogleAppEngineによるcron
code.google.com/intl/ja/appengine/
j.mp/861dO8
d.hatena.ne.jp/deeeki/20091201/gae_register_account

993 名前:nobodyさん mailto:sage [2010/01/18(月) 21:49:46 ID:???]
お邪魔します。phaさんの配布されている物を使って作成したbotなのですが、
複数件リプライを貰っているのに最新1件のリプライにしか反応(返事を)しない場合はどのような原因が考えられるでしょうか?
ちなみに手動で叩いてみてもやはり最新1件のリプライにしか反応しませんorz

994 名前:nobodyさん mailto:sage [2010/01/18(月) 21:52:04 ID:???]
>>993
そのプログラムのリプライ処理の部分を書いてくれ

995 名前:テンプレ案2 mailto:sage [2010/01/18(月) 21:52:59 ID:???]
OAuth
wolf.silk.to/labo/oauth.html (要curl)
www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
j.mp/5uaORh (curl不要その1)
j.mp/7vP58W (curl不要その2)

TwitterAPI日本語訳
watcher.moe-nifty.com/memo/docs/twitterAPI.txt


他に何かあったら追加ヨロ

996 名前:テンプレ案2 mailto:sage [2010/01/18(月) 21:53:43 ID:???]
OAuth
wolf.silk.to/labo/oauth.html (要curl)
www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
j.mp/5uaORh (curl不要その1)
j.mp/7vP58W (curl不要その2)

TwitterAPI日本語訳
watcher.moe-nifty.com/memo/docs/twitterAPI.txt


他に何かあったら追加ヨロ

997 名前:nobodyさん mailto:sage [2010/01/18(月) 21:53:44 ID:???]
だれか次スレ立ててくれ



998 名前:nobodyさん mailto:sage [2010/01/18(月) 22:43:45 ID:???]
>>978
* * * * * wget example.com/aaa.php
ってやってる?

* * * * * wget /var/www/path/to/aaa.php
とかしてませんか?

999 名前:nobodyさん mailto:sage [2010/01/18(月) 23:19:20 ID:???]
立てた。
pc11.2ch.net/test/read.cgi/php/1263824322/

1000 名前:nobodyさん mailto:sage [2010/01/18(月) 23:22:38 ID:???]
おまんこ

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef