約 4,784,480 件
https://w.atwiki.jp/easybotter_wiki/pages/20.html
まずはbot.phpに書かれている説明と公式サイトの"基本の設定"解説を熟読しよう。 wikiを見ても分からないところが出てきたら質問スレッドで質問しよう! bot.phpやEasyBotter.phpを編集する上で、基本使いそうなPHP制御構造等はTwitter Bot関連リンクにお勧め解説サイトをリンクしています。 ※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメントを書く」から誰かに頼んで下さい。 最初はきちんとPOST投稿されていたのに、Twitterへ投稿反映されなくなった!(bot.phpで「投稿しました」表示は出る) 最初はきちんとPOST投稿されていたのに、Twitterへ投稿しなくなった!(bot.phpへアクセスしても真っ白) POSTを○分おきにしたくてif(***)を使っているのですが、リプライまで○分おきになっちゃう! 会話終了機能が機能しないその1 その2 最初はきちんとPOST投稿されていたのに、Twitterへ投稿反映されなくなった!(bot.phpで「投稿しました」表示は出る) 発言パターンが少ないのではありませんか? 現在Twitterでは同一発言投稿が出来なくなりました(ある条件で解除されます。) 新しい発言を10つ位用意して、もう一度動かしてみましょう。 最初はきちんとPOST投稿されていたのに、Twitterへ投稿しなくなった!(bot.phpへアクセスしても真っ白) EasyBotterでは1つの発言(TL、リプライ)に対して、1度しか返信しません。 もう一度反応させたい場合は、違う発言を行って反応させてみましょう。 POSTを○分おきにしたくてif(***){}を使っているのですが、リプライまで○分おきになっちゃう! {}を閉じ忘れていませんか? リプライの記述まで{}内に入っていませんか? 一度bot.phpの中身を ?php //============================= //EasyBotterを呼び出します //============================= require_once("EasyBotter.php"); $eb = new EasyBotter(); $response = $eb- reply(2,"data.txt","reply_pattern.php"); ? とリプライ反応だけにしてみて、一つずつ追加して行きましょう。 会話終了機能が機能しない 場合によっては機能しないことがあるようです?応急処置。 その1 EasyBotter.php内 if(empty($status) || $status == "[[END]]"){ を if(empty($status) || stristr($status,"[[END]]")){ と変更する。 その2 EasyBotter.php内 //リプライを作る function makeReplyTweets($replies, $replyFile, $replyPatternFile){ (略) $replyTweets[] = $re; とある部分の $replyTweets[] = $re; を if(!stristr($status,"[[END]]")){$replyTweets[] = $re;} と変更する。
https://w.atwiki.jp/easybotter_wiki/pages/26.html
※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメント」から誰かに頼んで下さい。 改造方法を紹介するスレにあった「単語拾い」をver.2.0で使いたい [#c1629660]備考 [#e06b9c91] 自動フォロー返しした時にリプライで知らせたい [#ycc2942f] 鍵付きの人へ何度も話しかけてしまう場合 [#q1c3b296] 正規表現を使った言葉返しで、言葉遊びをさせる(文字列の並びを変える。) [#x3c977be]備考 [#ucd102de] 自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版) [#v3f312b5]備考:フォロー告知をDMにしたい場合(リムーブは出来ません。) [#b0266ba0] 特定のリプライ反応をリプライではなくTL発言にする [#wb35bfa8] 一度のリプライでリプライ回数の制限する コメント [#fd6efe73] 改造方法を紹介するスレにあった「単語拾い」をver.2.0で使いたい [#c1629660] EasyBotter.php内 if(strpos($text,"{tweet}") !== FALSE !empty($reply)){ $tweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply- text); $text = str_replace("{tweet}",$tweet,$text); } //フッターを追加 $text .= $this- _footer; の直前に、以下を追記する。 //■■ここから名詞拾い■■ if(strpos($text,"{ran_meishi}") !== FALSE !empty($reply)){ //アプリケーションID $apiKey = "***********************"; $apitweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply- text); $apiurl = "http //jlp.yahooapis.jp/MAService/V1/parse?appid=".$apiKey." filter=9 sentence=".$apitweet; $apirss = file_get_contents($apiurl); $apixml = simplexml_load_string($apirss); //配列「meishi」を作る $meishi = array(); // 特定の単語、指定字数以下の名詞を弾きながら配列に名詞を追加 foreach($apixml- ma_result- word_list- word as $apiitem) { //拾いたくない単語 if ((ereg("ダタラ|モスマン|モコイ", $apiitem- surface)==False) (mb_strlen($apiitem- surface) 3*2)){ $meishi[]=$apiitem- surface; } } //リプライの中に名詞がない場合の単語をセット(複数設定可) if ($meishi[0] == ""){$meishi = array(" #60;censored ","×××","■■■");} //名詞をランダムに選ぶ $ran_meishi = $meishi[array_rand($meishi)]; //名詞を変換する $text = ereg_replace("{ran_meishi}", "$ran_meishi", $text); } 備考 [#e06b9c91] ぼっと倉庫がソースです。 使い方はこちらのサイトの解説をよく見ること。 自動フォロー返しした時にリプライで知らせたい [#ycc2942f] EasyBotter.php内 //自動フォロー返し function autoFollow(){ $response = $this- getFollowers(); $followList = array(); foreach($response as $user){ $follow = (string)$user- following; if($follow == "false"){ $followList[] = (string)$user- screen_name; } } foreach($followList as $screen_name){ $response = $this- followUser($screen_name); } } とある部分を探す。 foreach($followList as $screen_name){ $response = $this- followUser($screen_name); } の直後に //■■フォローした時にリプライを送る■■ foreach($followList as $rscreen_name){ $value = array("status"= "@{$rscreen_name} フォロー完了しました!"); $response = $this- setUpdate($value); $result = $this- showResult($response); $results[] = $result; } を入れる。 「フォロー完了しました!」は自由に変更してもOK。 鍵付きの人へ何度も話しかけてしまう場合 [#q1c3b296] BBSより転載です。 EasyBotter.php内 //自動フォロー返し function autoFollow(){ (略) if($follow == "false"){ を //自動フォロー返し function autoFollow(){ (略) if($follow == "false" $user- protected == "false"){ と変更する。 鍵付きの人へフォロー返しを行いません。 正規表現を使った言葉返しで、言葉遊びをさせる(文字列の並びを変える。) [#x3c977be] EasyBotter.php内 //リプライを作る (略) //リプライパターンと照合 (略) for($i=1;$i count($matches);$i++){ $p = "$".$i; $status = str_replace($p,$matches[$i],$status); } を探す。 $status = str_replace($p,$matches[$i],$status); を //■■言葉遊びする■■ if(preg_match("/言葉遊び/u",$status)){ $kotoba_asobi = $this- mb_str_shuffle($matches[$i],"UTF-8"); }else{ $kotoba_asobi = $matches[$i]; } $status = str_replace($p,$kotoba_asobi,$status); に変更する。 EasyBotter.php内ラスト } ? の直前に function mb_str_shuffle($str,$enc){ $buff = array(); while ($len = mb_strlen($str,$enc)) { $buff[] = mb_substr($str,0,1,$enc); $str = mb_substr($str,1,$len,$enc); } shuffle($buff); return implode( ,$buff); } を追記する。 備考 [#ucd102de] mb_str_shuffle()はどう書く?org betaソースです。 「言葉遊び」部分はリプライパターンに応じて変更して下さい。 この一例はリプライパターンで「『$1』…言葉遊びしてみたよ~♪」とリプライさせる時の例になります。 「『$1』…言葉遊びしてみたよ~♪」とリプライする時のみ、$1を言葉遊びさせます。 言葉遊び:$1が「あいうえお」だとすると、「あおういえ」「うえあおい」等とランダムに文字列を入れ替えます。 自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版) [#v3f312b5] 「フォローして」「リムーブして」とリプライをした時にBOTに対象への処理を行う。 ※実際は「フォローして」「リムーブして」等の簡単な言葉ではないものを推薦。「フォローして。○○○(BOTの名前)」等。 reply_pattern.php $data = array();内に //半自動フォロー、リムーブ "フォローして"= array( "[[AUTOFOLLOW]]フォローしました", "[[AUTOFOLLOW]]フォローしたよ", ), "リムーブして"= array( "[[AUTOREMOVE]]リムーブしました", "[[AUTOREMOVE]]リムーブしたよ", ), を追記。 EasyBotter.php内 //リプライを作る (略) //リプライパターンと照合 (略) $re["status"] = "@".$reply_name." ".$status; を探す。 $re["status"] = "@".$reply_name." ".$status; を switch(true){ //半自動フォロー case stristr($status, "[[AUTOFOLLOW]]") $status = str_replace("[[AUTOFOLLOW]]","",$status); $followreq = $this- consumer- sendRequest("http //api.twitter.com/1/friendships/create.json",array("screen_name" = $reply["user"]["screen_name"]),"POST"); $re["status"] = "@".$reply["user"]["screen_name"]." ".$status; break; //半自動リムーブ case stristr($status, "[[AUTOREMOVE]]") $status = str_replace("[[AUTOREMOVE]]","",$status); $removereq = $this- consumer- sendRequest("http //api.twitter.com/1/friendships/destroy.json",array("screen_name" = $reply["user"]["screen_name"]),"POST"); $re["status"] = "@".$reply["user"]["screen_name"]." ".$status; break; //その他 default $re["status"] = "@".$reply["user"]["screen_name"]." ".$status; } に書き換える。 備考:フォロー告知をDMにしたい場合(リムーブは出来ません。) [#b0266ba0] switch(true){ case stristr($status, "AUTOFOLLOW") $statusxxx = str_replace("AUTOFOLLOW","",$status); $followreq = $this- consumer- sendRequest("http //api.twitter.com/1/friendships/create.json",array("screen_name" = $reply["user"]["screen_name"]),"POST"); $followreq = $this- consumer- sendRequest("https //api.twitter.com/1/direct_messages/new.json",array("screen_name" = $reply["user"]["screen_name"],"text" = "$statusxxx"),"POST"); $re["status"] = ""; break; (略) } if(stristr($status, "AUTOFOLLOW")){continue;} 特定のリプライ反応をリプライではなくTL発言にする [#wb35bfa8] EasyBotter.php内 //リプライを作る (略) //リプライパターンと照合 (略) $re["status"] = "@".$reply_name." ".$status; を探す。 $re["status"] = "@".$reply_name." ".$status; を switch(true){ //TL発言 case stristr($status, "[[TLH]]") $status = str_replace("[[TLH]]","",$status); $re["status"] = $status; $rpid = (string)$reply- id; file_put_contents($this- _logDataFile,$rpid); break; //その他 default $re["status"] = "@".$reply_name." ".$status; } に書き換える。 reply_pattern.php $data = array();内 ""= array( "[[TLH]]あれ…誰か呼んだ?", "その言葉はわからないです", ), と記入。 ランダムで 「[[TLH]]あれ…誰か呼んだ?」 が選ばれた時、リプライではなくTL上に「あれ…誰か呼んだ?」と発言する。 一度のリプライでリプライ回数の制限する EasyBotter.php内 //古い順にする $replies = array_reverse($replies_); if(count($replies) != 0){ //リプライの文章をつくる $replyTweets = $this- makeReplyTweets($replies, $replyFile, $replyPatternFile); の下に //リプライ回数の制限 ここから $reply_max = 3;//1回のreply実行でリプライできる最大数 if(count($replyTweets) $reply_max){//$replyTweetsが$reply_maxよりおおきかったら //$replyTweetsが$reply_max件になるまで配列から要素を削除 while(count($replyTweets) $reply_max){ array_splice($replyTweets,array_rand($replyTweets),1);//ランダムで1件削除 } } //リプライ回数の制限 ここまで を追加する コメント [#fd6efe73] "特定のリプライ反応をリプライではなくTL発言にする "についてなんですが、TLHとはなんでしょうか? -- みゅ子 (2010-09-16 01 23 26) TL発言=TLH これに限らず分からないのならまずは検索して調べましょ -- zero (2010-09-16 21 05 38) zeroさんありがとうございます。"TLH twitter"で検索したのですがいまいちよく分からず;次からはもっと検索してみます。すみませんでした。 それと「特定のリプライ反応をされる単語」は何処で設定できるのでしょうか?><; -- みゅ子 (2010-09-17 22 17 33) TL上の特定の単語に反応してTL発言をする、というのは可能ですか? -- フィル (2010-10-26 19 32 23) TLに反応してTL発言をするのはリプライ反応をTL発言にするの応用でできます。 -- ナナシスター (2010-11-03 18 05 32) リプライに関してreply_patternにない場合にはdata.txtからランダム発言ではなく、何も返さないようにするにはどうすればよいのでしょう -- 774 (2010-11-23 23 36 19) 「フォローした時にリプライを送る」で{name}を使いたいのですがうまくできません。どなたかご教授いただけませんでしょうか。自分でも調べてみたのですがわかりません。 -- りん (2010-12-20 16 41 08) フォロー要請&リプライする をするとどうもエラーになるのですが・・・原因分かる方いますか? -- なな (2011-04-12 23 51 31) ↑まだ分からないならBBSのTwitterBotPHP質問スレの方へ -- 通りすがり (2011-04-19 00 37 45) TLHとリプライサンプルの「([^\s、。]+?)は好き?"」「"$1おいしいです"」は併用できませんか?(動きませんでした) -- なし (2011-06-18 19 01 07) 「単語拾い」で、拾った発言を返す文章はdata.txtに書くのでしょうか? -- 774 (2011-07-07 00 35 47) ↑reply.txt -- 名無しさん (2011-07-07 20 24 33) ↑「reply_pattern.php」ではありませんか? -- (2011-07-08 01 02 17) 自動フォロー返しした時にリプライで知らせたいをDMで知らせることはできるのでしょうか。 -- 名無しさん (2011-09-06 17 27 09) 非公式RTに反応させることはできないでしょうか? -- 名無しさん (2011-09-10 01 30 13) 過去ログ内で紹介されてましたけど、EasyBotter.phpの中でRTを検索するとそれらしきところが出てきます。あとは御自分でドウゾ -- 名無しさん (2011-09-13 20 22 51) 名詞拾いで、TLの名詞を拾って、その言葉を盛り込んでTLでつぶやくというのは出来ますか? 出来るのならどこをどう改編したら良いでしょうか。 -- 名無しさん (2012-05-24 22 02 30) リプライをもらったツイートに対してfavをする機能はどのように実装しますか -- 名無しさん (2012-07-02 20 27 11) 特定の言葉がTL上にあるとき、favをする機能の実装はどうすればできますか -- 名無しさん (2012-07-02 20 30 28) Ver2.5を新APIにしたら半自動フォロー&リムーブが出来なくなりました…コピペしただけなので、こうなった理由が分からず困ってます; -- 名無しさん (2012-10-19 23 35 08) ↑Twitterがまた仕様変更したようですね。easybotterの作者さんが修正版を近々出すそうなので待ちましょう。 -- 名無しさん (2012-10-20 15 07 20) 新APIにしてから、viaが自分の設定したのとAPIで2重反応されます。私だけでしょうか? -- 名無しさん (2012-11-15 16 01 40) バージョン2.1.1でも『特定のリプライ反応をリプライではなくTL発言にする』機能を使いたいのですが、どうすれば使えますか? -- 七種 (2012-12-29 23 36 47) 2.1.2だと上記の半自動フォローが使えないと思うのですがどう修正すればいいのでしょう…リプを返す所までは修正出来ましたがフォローを返せません… -- 名無しさん (2013-01-31 12 13 29) http //badosyan3.blog84.fc2.com/blog-date-201301.html -- 名無しさん (2013-02-01 21 11 41) ↑途中送信失礼しました。「自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版) [#v3f312b5]」の部分は↑のサイトの方が参考になるかも…? -- 名無しさん (2013-02-01 21 12 29) ↑ありがとうございます、無事フォロー出来ました! -- 名無しさん (2013-02-02 02 53 34) 2.1.2で単語拾いを使うにはどうすればいいのでしょうか。エラーが出て使えません…。 -- 名無しさん (2013-02-20 03 29 33) 自動フォロー返しした時にリプライで知らせたい、の通りにやるとバージョン2.1.2では動きません。どなたか分かる方いらっしゃいませんか? -- 名無しさん (2013-02-21 13 32 05) 自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版)↑の参考URLが見れません。どなたか方法わかる方いらっしゃいますでしょうか。 -- 名無しさん (2013-06-13 15 44 15) ↑自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版)の参考URLが見れないのですがどなたか参考になるページを教えていただけないでしょうか。 -- 名無しさん (2013-06-13 15 45 08) 名詞拾いの件ですがリプライの単語を拾うのではなくTL上の単語を拾わせるにはどこをどう変えればいいですか? -- 名無しさん (2013-06-21 01 19 04) 自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版) [#v3f312b5]と、備考:フォロー告知をDMにしたい場合(リムーブは出来ません。) [#b0266ba0]の部分について直してみました。あっているという保証はできませんが試してみてください -- 名無しさん (2013-08-02 16 07 13) 「自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする(新API対応版) [#v3f312b5]」ですが「http //api.twitter.com/1/friendships/create.json」では動かないようです。「http //api.twitter.com/1.1/friendships/create.json」に修正したら動きました。 -- 名無しさん (2013-08-18 10 22 38) 上のコメントの方へ。ここはEBの古いバージョンの記述なので、新APIはvなしのものからv1になったときの新APIのことだと思いますよ。APIv1.1のはver.2.1版に書いたほうがよかったかもしれません。 -- 名無しさん (2013-08-18 23 58 15) いつの間にか function followUser($id) でエラー161に成ってる状態が続いていまして、フォロー返しが出来なく成ってしまいました。手動では出来ます。何が問題なのか分かりませんでしょうか? -- 名無しさん (2015-03-22 19 56 28) 名前 コメント
https://w.atwiki.jp/easybotter_wiki/pages/24.html
すべて外部サイトですので、各自責任を持って利用して下さい。 PHP的な問題は、教えてgooやYahoo!知恵袋でPHP質問してみるのも良いかもしれません。 PHPマニュアル お勧めPHP解説サイト cronサービス EasyBotter関連 PHPマニュアル PHP.net マニュアル よく使いそうなリンク:date関数, パターン修飾子 お勧めPHP解説サイト PHPやるなら見ておいたほうがいいサイト PHP プログラミング言語資料簡単な説明だけですが、パッとみるにはとても見やすいサイトです。 そふぃのphp入門初心者向けに1から説明されています。 PHPエラー一覧PHPエラーについて簡単に説明されています。 正規表現一覧メタ文字について簡単に説明されています。 関数リファレンス一覧 EasyBotterで緊急時BOT停止する方法 cronサービス Twitter Bot目的外でcronサービスを利用している人も沢山います。 日本人お断り、なんてことにならないよう節度ある利用をお願いします。 設置サーバーとcronサーバーとの相性もあります。 手動では動くのに、cronでは動かないなんてことも有りますので自分に合ったcronサービスを見つけて下さい。 GAE-cron ClubGAEを使った国内のcronサービス。ソース公開もあり、自分でcronサービスを設置することも出来る。 SetCronJob 海外のcronサービス無料と有料とある。登録して1か月使用されていなければ、有料コースまたはアカウント削除する催促のメールが届く Free Web Cron Service 海外のcronサービス無料。AOL、google、Yahoo、OpenID、Blogger、WordPressのアカウントがあるか、なくてもアカウント取得して使える。~~※OpenIDでログインすると、他の人の設定も見えたり変更もできるので注意 webcron.org 海外のcronサービスフランスの有料cronサービス。1週間の試用期間がある。料金はユーロで支払方法はクレジットカードかPayPal cron-job.org 海外のcronサービス無料。サーバー名に.jpが付いている物は登録出来ない?2分間隔などにしていると削除される? Cronjob.de 海外のcronサービスcron-job.orgと同じくドイツのサービス。有料と無料コースとある。日本のISPだと制限あり? EasyBotter関連 「簡単じゃない twitter bot」の作り方メモ
https://w.atwiki.jp/easybotter_wiki/pages/14.html
cronは後回し、まずは手動でOAuth認証のためのAccess TokenとAccess Token Secretを取得する setting.phpをテキストエディタで編集しよう bot.phpをテキストエディタで編集しよう ファイルをサーバーにアップロードしようver1.42から引き継ぎの場合 bot.phpにアクセスしよう botアカウント(例:aaa_bot)へ話しかけてみよう補足 ランダムPOSTもしてみよう補足 自動フォロー返しを機能させよう TL反応をさせてみよう 最後に… 番外:cronで自動的に動かす cronは後回し、まずは手動で EasyBotter2.04beta.zipをDLしてきたらそれを解凍。 EasyBotter2.04betaフォルダの中に、いくつかファイルがあると思う。 最初はファイル名など一切変えず、簡易的に、最小限の機能を動作させてみる。 OAuth認証のためのAccess TokenとAccess Token Secretを取得する ※Twitterにはbotアカウントでログインしておくこと!! setting.phpの編集をよく見て、"このサイトでOAuth認証のキーを取得する"の通りにやってみる。 setting.phpをテキストエディタで編集しよう ここで一番大事なのは文字コードに注意して編集、保存する。 $screen_name = ""; //botのid名$access_token = ""; // Access Tokenの値$access_token_secret = ""; // Access Token Secretの値 を自分に合わせて編集するだけでOK。 編集し終わったら保存を忘れずに。 bot.phpをテキストエディタで編集しよう こちらも文字コードには気をつけて編集する。 bot.phpの中身は ?php//=============================//EasyBotterを呼び出します//=============================require_once("EasyBotter.php");$eb = new EasyBotter();$response = $eb- reply(2,"data.txt","reply_pattern.php");? だけにして保存しよう。 (この設定では、2分間のリプライに対して追リプライをするようになります。) ファイルをサーバーにアップロードしよう PHP5が使えるサーバーで、PHPが使えるフォルダ以下に適当な名前のフォルダ(例:twitbot)を作る。 使用するファイルすべてをフォルダへアップロードしましょう。 twitbot┣ PEARフォルダ(中身も全部)┣ bot.php┣ data.txt┣ EasyBotter.php┣ log.dat┣ reply_pattern.php┗ setting.php アップした.phpファイルと.datファイル(ログファイル)は、サーバーによってはパーミッションを変更(属性変更)しなければなりません。 パーミッション値は各サーバーのFAQ等に載っているはずですので、確認して下さい。 大抵はlog.datのパーミッションを変更するだけでOKです。 ref(http //image02.wiki.livedoor.jp/e/i/easybotter_wiki/f88d16c9813c1397.png, 600) (アップロードの例。もちろん細部はレンタルサーバで異なる) 「ファイルをサーバーにアップロードしよう」項目はPHP以前にホームページ作成の基本知識です。~~これが分からなければEasyBotter設置は難しいです。ホームページ作成の知識から学びましょう。~~それが出来ないのであれば、厳しく言うと諦めた方が吉(プログラムの暴走などはサーバーへの負担、他のユーザーへ迷惑を掛ける原因になりえます。)~~簡易的にTwitter Botを作れるtwitter bot GENERATORを利用することをお勧めします。 ver1.42から引き継ぎの場合 一部のファイルは引き継ぎ可能です。 2.0と違う所はServicesフォルダとreply_random.phpは不要になるので、削除しても構わない。 OAuth認証が済んでいる人は、setting.phpの4つのキーはすでに取得したものを記入する。 リプライ(パターン外の反応)を使うならtw.txtをdata.txtにファイル名を変えるか、bot.php内のdata.txtになっているところのファイル名をtw.txtに変える。 TLリプライを使うときは、reply_pattern.phpをコピーして使えますが、ファイル名を変えることを忘れずに! 詳しくは下のTL反応させてみようの注意にて。 ※reply_pattern.php内の$reply_patternを、$dataに変更しておく必要があります。 任意のフォルダ名┣ PEARフォルダ(中身も全部)┣ bot.php┣ data.txt(tw.txtにあたるもの)┣ EasyBotter.php┣ log.dat┣ reply_pattern.php(リプライ用ファイル)┣ reply_pattern.phpのファイル名を変えたもの(TLリプライを使う場合) 例 tl_pattern.php┗ setting.php となります。■色のものは1.42から引き継いで使えるもの bot.phpにアクセスしよう サーバーへアップロードしたbot.phpにアクセスしてみよう(例:http //~/twitbot/bot.php) 真っ白なページに「2分以内に受け取った@はないようです。」と表示されれば準備は整いました! 英語で何やら文字が並んでいる場合は、PHPエラーが発生しています。 OAuth認証コードに間違いはないか、パーミッション値が合っているか、setting.phpやbot.phpでどこかおかしな記述をしていないかチェックし直そう。 botアカウント(例:aaa_bot)へ話しかけてみよう @aaa_bot おはよう!@aaa_bot 今日の運勢教えて! のどれかを、自分の本アカウントから発言し、botへリプライしてる。 その後、サーバーへアップしたbot.php(例:http //~/twitbot/bot.php)へアクセスする。 Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:@本アカウント名 Good morning, master. http //twitter.com/aaa_bot/status/******** か Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:@本アカウント名 おはようございます、御主人様 http //twitter.com/aaa_bot/status/******** のいずれかが表示されれば、botのリプライ機能は成功です! http //twitter.com/aaa_bot/へアクセスし、投稿されているかチェックしてみよう。 補足 初期のままでは 「おはよ」「今日の運勢」「こんにちは」「こんにちわ」「こんちは」「こんちわ」「◯◯は好き?」「会話終了」 という言葉を含まないリプライへは、data.txtの中のどれか1行を追リプライします。 ランダムPOSTもしてみよう bot.phpの中身を ?php//=============================//EasyBotterを呼び出します//=============================require_once("EasyBotter.php");$eb = new EasyBotter();$response = $eb- reply(2,"data.txt","reply_pattern.php");$response = $eb- postRandom("data.txt"); ? にして保存しよう。再度bot.phpをサーバーへアップロードする。 $response = $eb- postRandom("data.txt"); を追加することにより、bot.phpへアクセスした際data.txtの中のどれか1行を発言するようになります。 その後、サーバーへアップしたbot.php(例:http //~/twitbot/bot.php)へアクセスする。 Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:コメント http //twitter.com/aaa_bot/status/******** と表示されればランダムPOSTは成功です! "コメント"は いろはにほへと ちりぬるをわかよたれそ つねならむうゐのおくやま けふこえてあさきゆめみし ゑひもせすん のいずれか。 補足 $response = $eb- postRandom("data.txt"); ではなく $response = $eb- postRotation("data.txt"); を追加した場合、data.txtの中の1行目を発言します。 2回目にアクセスした時は2行目を発言します。 !実際はすべて1行目を発言している。 1行目を発言した際、1行目にあった文章を一番下の行へ移動させ、2行目だったものが1行目になり、txtが改変保存される。 次回アクセス時に1行目(その本来2行目だったもの)をまた発言する。 ※注意※~~この機能を利用する場合はdata.txtのパーミッションを、ログファイル用パーミッション値へ変更すること!!(例:666) 自動フォロー返しを機能させよう 自分の本アカウントと、aaa_bot互いにフォロー/フォロワー関係を解除して下さい。 Twitterの仕様変更により、フォロー返しは最新APIへの変更をしないと動作しません。 bot.phpの中身を ?php//=============================//EasyBotterを呼び出します//=============================require_once("EasyBotter.php");$eb = new EasyBotter();$response = $eb- reply(2,"data.txt","reply_pattern.php");$response = $eb- postRandom("data.txt");$response = $eb- autoFollow();? にして保存しよう。再度bot.phpをサーバーへアップロードする。 $response = $eb- autoFollow(); を追加することにより、bot.phpへアクセスした際、botアカウントをフォローしている人つまりフォロワーを自動でフォローするようになります。 本アカウントでTwitterにログインし、botアカウントをフォローする(この時、まだbotアカウントで本アカウントをフォローしない!) その後、サーバーへアップしたbot.php(例:http //~/twitbot/bot.php)へアクセスする。 (リプライ、POSTと違って自動フォロー返し云々のメッセージは表示されません。) http //twitter.com/にアクセスし、botアカウントが本アカウントをフォローしていれば自動フォロー返しは成功です! TL反応をさせてみよう bot.phpの中身を ?php//=============================//EasyBotterを呼び出します//=============================require_once("EasyBotter.php");$eb = new EasyBotter();$response = $eb- reply(2,"data.txt","reply_pattern.php");$response = $eb- postRandom("data.txt");$response = $eb- autoFollow();$response = $eb- replyTimeline(2,"reply_pattern.php");? にして保存しよう。再度bot.phpをサーバーへアップロードする。 $response = $eb- replyTimeline(2,"reply_pattern.php"); を追加することにより、bot.phpへアクセスした際、TL上の反応語句に反応し対象へリプライするようになります。 本アカウントとbotアカウントがフォロー/フォロワーの状態で こんにちは と、本アカウントで発言する。 その後、サーバーへアップしたbot.php(例:http //~/twitbot/bot.php)へアクセスする。 Twitterへの投稿に成功しました。~~@aaa_botに投稿したメッセージ:こんにちはこんにちは! http //twitter.com/aaa_bot/status/******** と表示されればTL反応は成功です! !!注意!!~~botを実際運用する時は、TL用のパターンファイルを別に用意して下さい。(例:tl_pattern.php)~~リプライのパターンファイル(reply_pattern.php)をTL反応と共有してしまうと、多様な言葉に反応しスパムbot化してしまいます!! 最後に… このページでは一通り最低限の機能を動作させる為に、なるべく初期設定のままで解説を行いました。 が、実際に稼動させる際について注意したいのがdata.txtの扱い方です。 通常POSTとリプライで共有している状態かと思いますが、通常POST用とリプライ用で別にファイルを作ることをおすすめします。 例:通常POST用→data.txt リプライ用→replydata.txt data.txtをコピーして改名するか、新規テキストファイルを作り(※文字コード等に注意)編集しましょう。 これでEasyBotterで出来る機能すべてを使いました。 あとはPHPを学び、EasyBotter.phpやreply_pattern.phpを編集することで色々な機能を自分なりにつけていこう。 番外:cronで自動的に動かす 「cronは後回し!まずは手動で動かそう!」の項目すべてが問題なく終了したら、次はcronを使って自動化してみよう。 ここで使うcron(クーロン、クローン、クロン)とは定期的に自動でファイルにアクセスしてくれるものです。 毎回手動でアクセスしていては疲れますね。 それを時間設定してプログラムで自動的にファイルにアクセスしてくれるもの(叩くという言い方するところもあり)と考えてくれればいいです。 手動で1分毎、2分毎にアクセスしていれば疲れるように、自動プログラムとはいえcronの間隔が短ければ短いほどサーバーの負担は大きくなります。 それをよく考えて、適度な時間に設定しましょう cronサービスは自分の環境に合ったものを探そう設置サーバーとcronのサーバーの相性が悪くて、うまく作動しないこともあります。~~無料サーバー+無料cronの組み合わせは精度が低い場合が多いです。気になるようでしたら~~有料サーバー+有料cronにするか、自宅サーバー化して動かすかにしましょう。~~精度が低くて話にならないとクレーム付けるのはお門違いです。 有料サーバーが提供しているcronを使用する場合は、各レンタル元の注意はちゃんと読みましょう~~レンタル元から最短でも何分間隔でと書かれています。設置解説を公開している所もありますが、意味が分からなければ~~まずその単語を理解してからにしましょう。解説サイトや掲示板でレンタル元が指定した時間より短い間隔で○分で~~動かしていると言っているところもありますが、乗せられないように。 ~~間違った設定はレンタル元も監視しているとはいえ、一時的に他ユーザーを巻き込んで停止処分されてしまいます。~~すでにいくつかのレンタルサーバーで、巻き添えを食らって一時停止を食らった人達もいます。注意しましょう。~~無理だと思ったら削除して、他で提供しているcronに変えた方がいいです cronの間隔は最低でも2分以上にしようあまり間隔が短いと、サーバーに負荷が掛かる&うまく動作しないことがあります。
https://w.atwiki.jp/easybotter_wiki/pages/34.html
最新APIへの変更 Twitter側の仕様変更がありましたので、EasyBotterで使用しているTwitter APIを最新のものに変更しなければなりません。 以下の解説は2011年8月12日現在の情報です。 APIとは? APIとは「Application Program Interface」または「Application Programming Interface」のことです。 参考:Wikipedia アプリケーションプログラミングインタフェース EasyBotterではリプライやタイムラインの取得、フォロー・フォロワーのIDや名前を取得、などの際にTwitterAPIを使用しています。 古いTwitter APIを使用し続けていると、挙動がおかしくなったり、全く機能しなくなるおそれがありまです。 今後もTwitter側の仕様変更などでAPIが変更になる場合があるかも知れませんので、公式情報を定期的に確認しましょう。 API更新方法 EasyBotter.php のパーミッションを 666 に変更してから、 次のスクリプトを replace.php など適当な名前でEasyBotter.phpと同じディレクトリにアップロードして、 ブラウザなどから実行してください。 またはbot.phpの中に ?php ~~ ? の~~の部分を貼り付けて、bot.phpから実行してもかまいません。 ただしbot.phpから実行する場合、書き換え処理が終了したら、このコードは削除してください。 自動で更新するのが不安な場合は、下記の表に従って手動で書き換えても大丈夫です。 ?php $target = "EasyBotter.php"; echo file_put_contents($target,str_replace( replies.xml , mentions.xml , preg_replace("/ps? \/\/twitter.com\/([a-z\/_]+)/","p //api.twitter.com/1/$1", file_get_contents($target))))?"多分完了しました。確認して下さい" "失敗しました"; ? EasyBotter.php の下部にまとまっている API 群が、下記の通り書き換わったかを漏れ無く確認して下さい。 コピー&ペーストの際に余計な文字(スペース等)が入ったり、必要な部分を消したりしないよう注意しましょう。 https //twitter.com/statuses/update.xml ↓ http //api.twitter.com/1/statuses/update.xml http //twitter.com/statuses/friends_timeline.xml ↓ http //api.twitter.com/1/statuses/friends_timeline.xml http //twitter.com/statuses/replies.xml ↓ http //api.twitter.com/1/statuses/mentions.xml http //twitter.com/statuses/friends.xml ↓ http //api.twitter.com/1/statuses/friends.xml http //twitter.com/statuses/followers.xml ↓ http //api.twitter.com/1/statuses/followers.xml http //twitter.com/friendships/create/".$screen_name.".xml ↓ http //api.twitter.com/1/friendships/create/".$screen_name.".xml
https://w.atwiki.jp/easybotter_wiki/pages/21.html
まずはbot.php/setting.phpに書かれている説明と、EasyBotter公式サイト、設定手順・エラー解決編を熟読しよう。 wikiを見ても分からないところが出てきたら質問スレッドで質問しよう! bot.phpやEasyBotter.phpを編集する上で、基本使いそうなPHP制御構造等はTwitter Bot関連リンクにお勧め解説サイトをリンクしています。 ※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメントを書く」から誰かに頼んで下さい。 object(SimpleXMLElement)#10 (2) ~~エラーが出ます"Incorrect signature"エラー "Status is a duplicate."エラー Fatal error Uncaught~~エラーが出ます bot.phpを実行した時、ブラウザ側が文字化けする object(SimpleXMLElement)#10 (2) {~~エラーが出ます "Incorrect signature"エラー object(SimpleXMLElement)#10 (2) { ["request"]= string(20) "/statuses/update.xml" ["error"]= string(19) "Incorrect signature" } というエラーが出る。 setting.phpに間違いは有りませんか? OAuth認証コードが古いものだったりしませんか? OAuth設定項目のアプリケーション設定がBrowserになっていませんか?Clientにして下さい。 他には data.txt なり指定されたテキストファイルの文字コードが shift-jis ではありませんか? 文字コードがおかしいと投稿時にエラーがでます。 指定するテキストファイルは全て UTF-8 に変換してください。 "Status is a duplicate."エラー object(SimpleXMLElement)#10 (2) { ["request"]= string(20) "/statuses/update.xml" ["error"]= string(22) "Status is a duplicate." } というエラーが出る。 「duplicate」つまり重複です。Twitterでは同じ発言を繰り返し投稿できません。少なくとも10ツイートはあける必要があります。 これはランダム投稿用データが少ない時に発生します。 また、bot.phpでpostRandom()が同時に動く時も発生する可能性があります。 Fatal error Uncaught~~エラーが出ます Fatal error Uncaught table border="1" cellspacing="0" tr td colspan="3" bgcolor="#aaaaaa" align="center" b Exception trace /b /td /tr tr td align="center" bgcolor="#cccccc" width="20" b # /b /td td align="center" bgcolor="#cccccc" b Function /b /td td align="center" bgcolor="#cccccc" b Location /b /td /tr tr td align="center" 0 /td td HTTP_OAuth_Consumer_Request- send() /td td フルパス/PEAR/HTTP/OAuth/Consumer.php 250 /td /tr tr td align="center" 1 /td td HTTP_OAuth_Consumer- sendRequest( https //twitter. hellip; , Array, POST ) /td td フルパス/EasyBotter.php 517 /td /tr tr td align="center" 2 /td td EasyBotter- _setData( https //twitter. hellip; , Array) /td td フルパス/EasyBotter.php 528 /td /tr tr td align="center" 3 /td td EasyBotter- setUpdate(Array) /td td フルパス/EasyBotter.php 162 /td /tr tr td align="center" 4 /td td EasyBotter- re in フルパス/PEAR/HTTP/OAuth/Consumer/Request.php on line 214 Twitterサーバーと連繋がうまく行ってない時(重い時)よく出るエラーのようです。 ほかにも原因がある場合がありますが、よくわかっていません。 land.to鯖では反応するものがないと「*以内に受け取ったメッセージはありません」と表示はしますが、実際リプライを受け取って返そうとするとこのエラーが出ます。 curlが使えないことによるものだと思われます(ver1.42にOAuthをつけると、curlエラーが出て動かない。) Windows環境にてopensslが有効になってないと発生しました。 bot.phpを実行した時、ブラウザ側が文字化けする 例:"Status is a duplicate."エラーの時 Twitter縺ク縺ョ謚慕ィソ縺ォ螟ア謨励@縺セ縺励◆縲 繝ヲ繝シ繧カ繝シ蜷搾シ咫 id object(SimpleXMLElement)#10 (2) { ["error"]= string(22) "Status is a duplicate." ["request"]= string(22) "/1/statuses/update.xml" } EasyBotter.php rep.php reply_pattern.php setting.php bot.php data.txt の文字コードがUTF-8で保存してあるか確認してください。 備考:配布されているデフォルトのソースファイルではUTF-8N(UTF-8のBOMなし)になっています。
https://w.atwiki.jp/easybotter_wiki/
EasyBotter 非公式wiki wiki編集のお知らせ 新規作成や大きな変更・編集を行った際は、利用者全員が分かるようこのページ下の「コメントを書く」から告知して下さい。 削除したいページがあればこのページ下の「コメントを書く」で利用者全員が分かるよう告知をお願いします。 関連リンク すべて外部サイトですので、各自責任を持って利用して下さい。 プログラミングができなくても作れるTwitter botの作り方(EasyBotter配布サイト) このwikiは非公式です。 くれぐれもwikiの内容をphaさんに質問する等迷惑の無い様お願い致します。 Twitter Bot BBS phaさん管理のTwitter Bot掲示板です。PHP質問スレッドもあり。EasyBotter以外のTwitter BotでもOK。 Twitter コメント 無事Botの運営に成功しました。まとめていただいた皆さんに感謝を。 -- 名無しさん (2011-06-13 19 48 44) 『"EasyBotterから"のEasyBotterという部分は変えられますか?』のページ。oauth_test.php内の3行目「require_once('twitterOAuth.php');」は全部小文字に直さないとダメだな -- 名無しさん (2012-02-20 01 26 51) 不具合一覧が不具合(リンク切れ?)を起こしている。 -- 名無しさん (2012-03-16 01 46 00) 自分で直しておきました。 -- 名無しさん (2012-03-29 15 10 07) 関連リンクにある、•EasyBotterで緊急時BOT停止する方法 のページが見られないようになってしまっています。是非導入したいので、また閲覧できるようになればうれしいのですが・・・ -- 名無しさん (2012-05-16 01 31 57) ツイートエラーで400件ほど表示されません。 -- 都 (2012-05-26 19 45 32) 緊急時BOT停止する方法 のページを閲覧するには、主の人に閲覧許可を貰う必要があります。 -- 名無しさん (2012-05-26 23 21 57) 2012年 10/11 早朝に、旧APIの稼動が止まったようです。新APIに移行したら再稼動しましたので、その日を境に動かなくなった場合は、APIを最新に変更してみてください。 -- ryuru (2012-10-12 11 03 46) 新APIへの移行方法はこのページに書かれている旧式の方法で大丈夫でしょうか?素人質問ですみません。 -- 舞流 (2012-10-13 03 12 41) botが止まってましたが「最新APIへの変更」ページのreplace.php実行で再稼働しました -- ねお (2012-10-13 18 51 53) 2012/10/14 APIの変更を怠っていたら、3日ほど前から動かなくなってました。API変更はちゃんと行いましょう。 -- ruka (2012-10-14 08 52 12) "page dose not exist"というようなエラーが出ます。APIを修正するとOKです。 -- ruka (2012-10-14 08 53 09) phaです。お世話になっております。APIについて変更したものを配布しようと思います。 -- pha (2012-10-14 18 40 24) 私も、replace.phpを実行したらエラーが消えました。 http //www26.atwiki.jp/easybotter_wiki/pages/34.html -- kabuki (2012-10-15 10 06 41) このwikiではVer2.1版のページを新規に作った方がいいですか?前バージョンとソースがちょっと違いますし…… -- 名無しさん (2012-11-08 18 26 20) Vre.2.1版のページ、作っていただけると非常に助かります。きっと悩んでる人がいっぱいいると思われますので… -- 名無しさん (2012-11-08 21 45 32) 11/9にPHPが5.4に移行しました。これにともない、時間や分を指定する関数date()は、intval()で囲まないと動かなくなったようです。 例:if (intval(date("G")) == 16) {…} -- ryuru (2012-11-10 20 21 32) 同じくVer.2.1版のページお願いします。差し替えただけなのですが動かなくなってしまいました… -- 名無しさん (2012-11-12 22 11 48) 2.1バージョン+さくらcronで動かなくなった方いますか? -- 名無しさん (2012-11-15 20 15 45) 自分も2.1版ページ欲しいです。追加機能が自力ではなんかうまく行かなくて…他力本願で恐縮ですが; -- 名無しさん (2013-01-07 21 35 51) 2.1版の【特定のアカウントに対しては、別のリプライパターンを読み込ませたい】を追加しました。 -- 名無しさん (2013-01-14 21 40 11) 私も2.1バージョン+さくらcronで動きません。手動では問題ないのですが。 -- 名無しさん (2013-01-21 05 33 10) どなたか2.1版「特定のアカウントとのリプライ回数制限」を教えてくれませんか…? 自分で書き換えて試したらうまく動きませんでした>< -- 名無しさん (2013-01-27 15 17 00) 2.1verで停止コマンドが動作しなくなってしまいました。lolipopでcornもサーバもまかなっています。どうしたらいいでしょう……。 -- 名無しさん (2013-03-12 02 02 50) 2.1.2版にバージョンアップしてから、タイムラインへのリプライが動かなくなってしまいました。@リプライとTLリプライのファイルを分けていたのですが、タイムライン用(TLリプライ)だけ動きません。reply_patternのファイル名なら動くのですが、@リプライと混在してスパム化するのは嫌なので、何か改善方法はありませんか? -- 名無し (2013-04-01 04 39 27) 「地震で自動停止させる」ページを作成しました。 -- 名無しさん (2013-04-17 03 52 27) ページ作成ありがとうございます。他サイト様の改造ソースがほぼそのままのように見受けられますが、転載許可はいただいたでしょうか?もしまだでしたら元ネタのお二人に連絡したほうがよろしいかなと……余計なお世話だったらすみません -- 名無しさんへ (2013-04-27 15 59 43) 地震で自動停止ってやつ、PHP5.3のサーバだと使えないんだね…(´・ω・`) 使いたかった… -- 名無しさん (2013-06-16 12 04 17) オートフォロー機能が既にフォローしているアカウントへも延々とフォローしているようなのですがこの動作で大丈夫でしょうか……API消費しているような気がするのですが -- 名無しさん (2013-06-21 00 19 20) ニックネーム機能は2.0版でしかできない、というような記事を読んだことがあるのですが2.1版ではむりなのでしょうか?もしも可能ならヒントだけでもいいので教えて欲しいです。 -- 名無しさん (2013-07-02 23 56 46) 申し訳ないのですが、「自動フォロー返しした時にリプライで知らせたい」の2.1.2版をどなたかお願いいたします… -- 名無しさん (2013-07-04 00 21 43) 最新のAPIに変更が前のAPI記述のままになっているような気がするのですが……。今ってjsonじゃなかったですっけ? -- 名無しさん (2013-07-17 14 29 51) 随分前から改行を入れてつぶやきができるようになりましたが -- 名無しさん (2013-08-04 10 44 39) ↑の続き EasyBotterで改行付きでつぶやかせる方法ってありますか?検索しても「改行コード」ばかりヒットして方法が見つからないです。。 -- 名無しさん (2013-08-04 10 45 53) ニックネーム機能は2.0~のコメンを書き込んだ者ですが2.1版でも可能でしたしやり方を紹介してくださっているサイト様を見つけました。お騒がせしましたm(_ _)m -- 名無しさん (2013-08-07 13 49 56) ↑で -- 名無しさん (2013-08-14 05 25 42) ↑申し訳ないミスりました…。ニックネーム機能を2.1版での導入おめでとうございます。私も探しているのですが見つけることが出来ずにいます。紹介してくださっているサイト様(タイトルかURL)を是非教えていただけませんでしょうか?先方のサイト様がリンク不可のようでしたら、発見時の検索ワードとかでもいいので何かヒントをいただければと思います。よろしくお願いします。 -- 名無しさん (2013-08-14 05 33 44) ↑リンクを貼っていいのかわからなかったので検索ワードを『EasyBotter 2.1 改造』で探した時に出てきました。 -- 名無しさん (2013-08-16 11 06 33) ↑ありがとうございます~!それっぽいサイトを見つけることができました!でも改造例を閲覧したら以前自分でやってみてダメだった方法でした;;こちらの今の環境では残念ながら動きませんでしたが書き換え自体は間違っていなかったことがわかったのでよかったです。別の環境に移せた時にあらためて実装してみようと思います! -- 名無しさん (2013-08-16 22 24 28) 「地震で自動停止させる」、@PAGESのPHP5.3のサーバで停止動作は確認できました。参考にしたサイトがあるのですが、リンク張って良いのかわからなかったので、「EasyBotter 地震で自動停止」で検索してみて下さい。 -- 名無しさん (2013-08-24 19 05 16) ↑み○ば…かな?明日色々試してみる、情報ありがとう!!(2013-06-16 12 04 17の人) -- 名無しさん (2013-08-25 13 13 34) 昨夜からbotが機能しなくなり、手動でうってもCould not authenticate youと表示されてしまいます...認証できないってOAuth認証が上手くいっていないのでしょうか… -- layman (2013-10-09 23 08 14) Oauth認証を自分で取り直したらやはり直りました。easybotter製作者様のアプリが何らかの原因で使えなくなったのかな...とにかくお騒がせしました! -- layman (2013-10-10 11 14 09) 改造で出てくる2.1.2のニックネーム機能は使えなかったです。どなたか他のやり方をご存じの方、いらっしゃいましたらご教示頂けると有り難いです。 -- Lime (2013-10-23 00 39 23) 以前ニックネーム機能の実装に失敗した者ですがこちらの凡ミスでした!{name}変換部分を置き換えるとこをミスっていただけでした^^; -- 名無しさん (2013-10-27 16 41 14) @PAGESは無料でbot置けなくなるようですね。 -- 名無しさん (2013-11-08 09 57 37) ↑メール着てましたね~移転先を探さないと… -- 名無しさん (2013-11-08 15 01 18) ↑「当面の間利用削除は延期します」って来てたね。どうなることやら…… -- 名無しさん (2013-11-23 23 20 11) 14/1/15 twitter社API変更。「 http //api.twitter.com へのアクセスがSSL(HTTPS)のみに 」 easybotter.php内の http //api.twitter.com/ を https //api.twitter.com/ に変更でOK(2箇所) -- ももんが (2014-01-15 12 46 48) ↑ありがとうございました!助かりました -- 名無しさん (2014-01-15 19 50 05) ↑私のとこのも1/15以降Tweetしてくれなかったのが先ほど復活出来ました。情報有り難うございました。 -- najirane_bot (2014-01-16 20 05 42) API変更対策の件、感謝です -- 名無しさん (2014-01-20 10 40 51) 60日以上未更新広告の為にコメ -- 名無しさん (2014-09-09 15 27 04) フォローを増やすため頑張りたいと思います。 -- 名無しさん (2014-09-30 13 12 23) 60日以上未更新広告の為にコメ -- 名無しさん (2014-12-29 14 34 21) 【バージョン】2.1.3 【設置鯖名】XSERVER 【PHPのバージョン】PHP5.3.3 【実行】 手動 【手動】 動く 【不明点など】前から浸かっているTwitterアカウントでは問題なく動いている。今回新しくTwitterアカウントを取りEasyBotterをセットしたところ、Twitterからの情報が取れないようで「(@)をフォローしました Twitterへの投稿に成功しました。 @に投稿したメッセージ: http //twitter.com//status/」とメッセージが出て、実際には送られていない。 -- caffe_siesta (2015-01-27 14 30 35) 【バージョン】2.1.3 【設置鯖名】XSERVER 【PHPのバージョン】PHP5.3.3 【実行】 手動 【手動】 動く 【不明点など】EasyBotter歴5年です。前から使っているTwitterアカウントでは問題なく動いている。今回新しくTwitterアカウントを取りEasyBotterをセット。手動で動かすと「(@)をフォローしました Twitterへの投稿に成功しました。 @に投稿したメッセージ: http //twitter.com//status/」となりアカウント名が入らないし、実際には投稿されていない。現在動いているEasyBotterをそのまま新しいアカウントで設定しても状況は変わらない。Twitter側の問題でしょうか?修正場所を指南いただけるとありがたいです。 -- caffe_siesta (2015-01-27 14 36 06) twitter api の権限がread only だと投稿に失敗するようです -- 名無しさん (2015-03-03 15 02 11) 【バージョン】2.1.3 【設置鯖名】ロリポップ 【PHPのバージョン】PHP5.3 【実行】 手動 【手動】 エラー 【不明点など】ずっと正常稼働していたのですが、いつの間にか function followUser でエラー161に成ってる状態が続いていまして、フォロー返しが出来なく成ってしまいました。公式twitterクライアントでの手動フォロー返しは出来ます。何が問題なのかご指南お願いします? -- 名無しさん (2015-03-25 22 20 08) 私もロリポップでbotを運営しているんですが、何故かフォローだけができない状態なんですよね。それに伴ったリプライはちゃんと返すし、同じスクリプトを使った別サーバーのbotには何も問題がない。謎です。 -- 名無しさん (2015-03-26 23 06 45) ↑ご指南ありがとうございます。別サーバーでは動くんですか!?貴重なご意見です。APIの関係とかtwitter様の仕様変更とかと思っていたら、そうではないと言う事ですね。なるほど。ありがとうございました。 -- 名無しさん (2015-03-26 23 52 01) twitter api の権限修正で動きました!ありがとうございました。感謝感謝! -- caffe_siesta (2015-05-12 17 07 01) @pages今知ったのですがが新規登録の受付停止してますね。 -- 名無しさん (2015-06-21 13 13 38) 7/7からbotが動かないのですが皆さんは異常なしですか?@pages側の問題かな -- 名無しさん (2015-07-09 23 55 08) ↑GAE-Cron使ってるならそちらの問題かと。Twitterで「BOT Cron」で調べると様子が分かると思いますよ -- 名無しさん (2015-07-14 02 32 17) ↑有難うございます。ああっ…他の性能の良い無料cronに心当たりがないので気が滅入ります(シュン -- 名無しさん (2015-07-16 02 10 53) twitter api側の変更があったのか、5分毎にTLのキーワード反応でリプライするbotが毎日書き込み制限にあいます…聞ける人がおらずこちらでの質問になり恐縮ですが、どなたか現在も稼働しているEasyBotterユーザーの方教えていただければ幸いです。 -- 名無しさん (2015-07-27 21 14 28) ↑続き ちなみにツイート内容は「キーワードを含むツイートをした人の、そのツイートの文頭に追記をしてツイートするという内容です。「A キーワード」とつぶやかれた場合、「○○さんがツイート:A キーワード」みたいに呟きなおすものです。 -- 名無しさん (2015-07-27 21 13 45) ↑もひとつ続き Twitter Supportからは具体的な返事が来ずに困っております、現在はアプリは活性化されていますがcronは止めている状態です。再度稼働に持っていきたいので、ひょっとしたらレベルでも構わないのでアドバイスいただければと思います。よろしくお願いします。 -- 名無しさん (2015-07-27 21 18 12) ↑ 症状書いてなかった。先週末突然書き込み停止>自動フォロー機能を1日1回のみに>翌日また書き込み停止という感じです。 -- 名無しさん (2015-07-27 22 51 37) 改行して呟きたいのですが"\n"を入れても改行できないので、改行方法を教えてください。 -- 名無しさん (2015-08-12 23 00 23) 4月末、7月末と2回、稼働中だった複数のbotの内いくつかが突然停止しました。しかし、全て停止したわけでなく、同じEasybotter製で、同じサーバー、同じcronを使用しているbotで停止した/停止していないが起こっているため、原因が特定できない状況です(そのため、停止したbotは停止したままになってしまっています)。原因としては何が考えられるでしょうか?また、それに対する解決案などもあればご教授頂ければ幸いです。 -- 名無しさん (2015-09-29 09 36 16) https //apps.twitter.com/ にアクセスしたところ、自分は凍結かかってました…そんなこともあるかもしれません -- 名無しさん (2015-11-10 23 46 36) 21日あたりからタイムアウトエラー?で停止状態なのですが、同じ症状の方いらっしゃいますか? -- 名無しさん (2016-02-24 06 49 50) 3月からRequest.phpファイルが原因とみられるFatal error require_onceのエラーが出ていてbotが止まっており困っております。原因分かる方いらっしゃいますでしょうか? -- 名無しさん (2016-03-15 01 01 45) ヤマトのコメントが的はずれで会話にならない! 腹が立ちます、 -- マヤ (2017-07-15 23 37 37) @pagesが終了のお知らせのようですね… -- 名無しさん (2018-01-08 05 16 16) @pagesが2/28でサービス終了との事、困りました。無料のいい所ないかしら。クロンは前のGAEが終了した後、三分間隔だったのに、google apps Sprictで5分間隔で叩いておりました。(1分間隔だと止まってしまうので)だんだんと使いづらくなる世知辛い世の中ですね。 -- ななし (2018-02-27 20 58 56) アットページーズ終了してますね… 他にどこかPHPが使える無料のサーバーがあれば教えてください -- 名無しさん (2018-03-02 00 33 01) 自分は結局他で使ってた有料のとこの容量が空いてたのでそっちに移しちゃいましたわ^^ -- 名無しさん (2018-03-23 19 20 28) API変更の影響なのかずっと動かしてたbotが止まってしまいました……みなさんはどう対応されました? -- 名無しさん (2023-08-22 20 43 28) 名前 コメント
https://w.atwiki.jp/easybotter_wiki/pages/22.html
※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメント」から誰かに頼んで下さい。 発見されているバグ会話数制限が機能していない フッターが機能していない {tweet}が機能していない {timeline_id}と{timeline_name}が逆になっている。 修正済みのバグ(ver.2.04betaまで) コメント 発見されているバグ 特に初心者の方は、バックアップを取ってから編集して下さい。 会話数制限が機能していない ID別設定「特定のアカウントとのリプライ回数を制限したい」を参考に フッターが機能していない 改善法:Easybotter.phpを編集する。 if(preg_match("@{.+?}@",$status) == 1){ $status = $this- convertText($status, $tweet); } とある部分の if(preg_match("@{.+?}@",$status) == 1){ } をコメントアウト(//)するか、削除して下さい。 数箇所有ります、すべて行って下さい。~~{}内は絶対に削除しないで下さい。 {tweet}が機能していない 改善法:Easybotter.phpを編集する。 if(strpos($text,"{tweet}") !== FALSE !empty($reply)){ $tweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply- status); $text = str_replace("{tweet}",$tweet,$text); } とある部分を if(strpos($text,"{tweet}") !== FALSE !empty($reply)){ $tweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply- text); $text = str_replace("{tweet}",$tweet,$text); } へまるまる変更して下さい。 {timeline_id}と{timeline_name}が逆になっている。 改善法:Easybotter.phpを編集する。 //タイムラインからランダムに最近発言した人のデータを取る if(strpos($text,"{timeline_id}") !== FALSE){ $randomTweet = $this- getRandomTweet(); $text = str_replace("{timeline_id}", $randomTweet- user- name,$text); } if(strpos($text, "{timeline_name}") !== FALSE){ $randomTweet = $this- getRandomTweet(); $text = str_replace("{timeline_name}",$randomTweet- user- screen_name,$text); } とある部分を //タイムラインからランダムに最近発言した人のデータを取る if(strpos($text,"{timeline_id}") !== FALSE){ $randomTweet = $this- getRandomTweet(); $text = str_replace("{timeline_id}", $randomTweet- user- screen_name,$text); } if(strpos($text, "{timeline_name}") !== FALSE){ $randomTweet = $this- getRandomTweet(); $text = str_replace("{timeline_name}",$randomTweet- user- name,$text); } へまるまる変更して下さい。 修正済みのバグ(ver.2.04betaまで) TL反応で「@」付にも反応してしまう リプライパターンで正規表現が正常に使えない コメント フッターが機能していないは if(preg_match("@{.+?}@",$status) == 1){ $status = $this- convertText($status); } else { $status .= $this- _footer; }でいいんじゃないの。 -- koziki_bot (2011-01-28 09 50 39) TL返信で、会話終了 "END"が効いていないのでは。 EasyBotter.pnp の function makeReplyTimelineTweets の一部を修正 if(empty($status)|| $status == "[[END]]"){ continue; } でいいんじゃないの。 -- koziki_bot (2011-01-31 22 56 54) どこまで返信したか覚えておくカウンターファイルで、RPとTLの両方を使うと、カウンターファイルが同一のため発言抜けが生じる。カウンターファイル(実際はツイッターID番号)を別けると大丈夫です。 -- koziki_bot (2011-02-23 00 25 40) TLの読み込み最大数が20件となっている、count=180位(最大200)にして読み込めば抜けはすくなくなるぞ。 -- koziki_bot (2011-02-23 00 30 49) リプライに関しては上の修正で{tweet}がうまくいったのですが、リプライ内容をTLにつぶやくTLHの機能をつかった場合、記号のまま{tweet}ってつぶやいてしまいます。こういうものなのでしょうか? -- bot1号 (2011-04-29 20 38 54) @返信だけにフッタを付けないやり方はあるでしょうか? -- date (2011-05-17 19 05 47) 名前 コメント
https://w.atwiki.jp/easybotter_wiki/pages/38.html
※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメント」から誰かに頼んで下さい。 このページはpha氏が書いたEasyBotterが勝手に動作させられる可能性とその対策の補助的なものです。 まずは、EasyBotterが勝手に動作させられる可能性とその対策をお読み下さい。 各ディレクトリにindex.htmlを置く レンタルサーバーによっては、ディレクトリ内にindex.htmlを置かないとIEなどといったブラウザで丸見えになったりします。 ロボット避けを試みる ロボット避けのMETAタグやrobots.txtはあくまで指定であり、強制力はありません。 Googleには有効ですか、他の検索エンジンに載ってしまう可能性があります。 METAタグを追加する EasyBotter.php内 //表示用HTML function printHeader(){ $header = !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ; $header .= html xmlns="http //www.w3.org/1999/xhtml" lang="ja" xml lang="ja" ; $header .= head ; $header .= meta http-equiv="content-language" content="ja" / ; $header .= meta http-equiv="content-type" content="text/html; charset=UTF-8" / ; $header .= title EasyBotter /title ; $header .= /head ; $header .= body pre ; print $header; } を探す。 $header .= title EasyBotter /title ; の上に $header .= meta name="robots" content="noindex,nofollow,noarchive" ; を追加。 ver.2.1を改造・機能追加した場合 改造・機能追加してEasyBotter.phpの他に、*****.phpといったファイルを増やしたのなら、中にHTML表記させる記述があるか確認する事を推奨します。HTML表記があったら、 heml の下にロボット避けのMETAタグを追加しましょう。 meta name="robots" content="noindex,nofollow,noarchive" noindex…ページの登録拒否、nofollow…ページ内リンクを辿り拒否、noarchive…キャッシュ拒否 ホームページ講座のサイトなどに、ロボット避けのMETAタグについてより詳しい解説が載ってます。 robots.txtで検索エンジンのクローラーを制御 robots.txtは、最上位のディレクトリに置くこと。 ◯ http //ユーザーID.レンタルサーバー/robots.txt × http //ユーザーID.レンタルサーバー/ディレクトリ/robots.txt × http //レンタルサーバー/ユーザーID/robots.txt @pagesユーザーは、最上位のディレクトリにrobots.txtを置けないためこの方法は有効ではありません。 設置例1:サイト全体を避けさせるようにしたい / ├index.html ├robots.txt └EasyBotterを設置するディレクトリ └index.html robots.txt内には User-Agent * Disallow / 設置例2:指定したディレクトリを避けさせるようにしたい / ├index.html ├robots.txt └ワンクッションのディレクトリ ├index.html └EasyBotterを設置するディレクトリ └index.html robots.txt内には User-agent * /ディレクトリ名/ /ワンクッションのディレクトリ名/ ※※※※注意!!※※※※ robots.txtはブラウザからアクセスすれば書いてある内容が見えます。robots.txt内にEasyBotterを設置するディレクトリ(隠したいディレクトリ)を正直に書かないこと!EasyBotterを設置するディレクトリまで書いてしまうと、EasyBotterを設置したディレクトリを特定され名称変更していないファイルを探り当てられる可能性があります。参照:Robots.txtで秘密がバレる!? 他、違った指定をしたかったりrobots.txtについてもっと詳しく知りたい場合は、 以下の参考になるサイトを見たり「robots.txt」で検索してみてください。 参考になるサイト:robots.txtでロボット対策 Googleの検索結果を制御・削除したい Googleアカウントを習得してウェブマスターツールからの操作をお勧めします。 Google の検索結果からコンテンツを削除するには 動作確認 @pages……ファイル内にMETAタグを追加し、Google ウエブマスターツールで削除要請した結果、Googleに載った検索結果から消えました。 コメント 1 -- 名無しさん (2014-09-09 15 24 19) 名前 コメント
https://w.atwiki.jp/easybotter_wiki/pages/29.html
※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメント」から誰かに頼んで下さい。 特定のアカウントと会話(リプライ)させたくない [#o0aaf045]botと名の付くアカウントを制限する [#n9e81b80] 特定のアカウントを制限する [#v1124dd8] 特定のアカウントとのリプライ回数を制限したい [#hcd8233e]備考 [#ldfe0701]毎日ログをリセットしたい [#y24beea8] 特定のアカウントに対しては、別のリプライパターンを読み込ませたい [#g6a99bfa] 特定のアカウントは自動フォローしない [#hd86ba2c] コメント [#ub9d67da] 特定のアカウントと会話(リプライ)させたくない [#o0aaf045] EasyBotter.php内 //必要なつぶやきのみに絞る function selectTweets($response){ $replies = array(); foreach($response as $reply){ //自分自身のつぶやきを除外する $replyName = (string)$reply- user- screen_name; if($this- _screen_name == $replyName){ continue; } //RT, QTを除外する $text = (string)$reply- text; if(strpos($text,"RT") != FALSE || strpos($text,"QT") != FALSE){ continue; } $replies[] = $reply; } return $replies; } を探す。 botと名の付くアカウントを制限する [#n9e81b80] if($this- _screen_name == $replyName){ を //■■botを除外■■ if($this- _screen_name == $replyName || preg_match("@bot@i",$replyName)){ に変更する。 bot(大小文字関係なく)と名の付くアカウントに対してはリプライしなくなります。 特定のアカウントを制限する [#v1124dd8] if($this- _screen_name == $replyName){ を //■■特定の人を除外■■ $bottername = array("abcd","efgh"); if($this- _screen_name == $replyName || in_array($replyName, $bottername)){ とすることで、abcdとefghという名のアカウントに対してリプライしなくなります。 botと入ってないアカウント名のBOTを指定したい場合に使用して下さい。 特定のアカウントとのリプライ回数を制限したい [#hcd8233e] このサンプルはzkb_otさんのソースを参考にしています。 EasyBotter.php内 //リプライを作る (略) $status = ""; //リプライパターンと照合 if(!empty($this- _replyPatternData[$replyPatternFile])){ を探す。 $status = ""; の直前に //■■会話数制限(リプライ返し)■■ $filenameb = "kaiwalog.txt";//kaiwalog.txtに誰からリプライがあったか最新$botk1件記録する //$filenamebは存在するか? if(!file_exists($filenameb)){ touch($twit_logfile) or die( ファイル作成に失敗\n ); chmod($twit_logfile, 0606) or die( 権限変更に失敗\n );//※パーミッションは鯖によって違います } $botdata = file_get_contents($filenameb); $botdata2 = $botdata; $countk = substr_count($botdata2,(string)$reply- user- screen_name); $botdata = explode(",",$botdata); $kazu = count($botdata); $botkey = 1; $botk1 = "10";$botk1--;//記録件数 $botk2 = "2";//回までOK $bottername = array("abcd","efgh");//制限したいアカウント名をいれる if(preg_match("@bot@i",(string)$reply- user- screen_name) || in_array((string)$reply- user- screen_name,$bottername)){ if ($countk =$botk2){ $botkey = "0"; $botdata = implode(",",$botdata); }else{ while ($kazu $botk1){$botdatax = array_pop($botdata);$kazu = count($botdata);} $botdata=implode(",",$botdata); $botdata=(string)$reply- user- screen_name.",".$botdata; } }else{ while ($kazu $botk1){$botdatax = array_pop($botdata);$kazu = count($botdata);} $botdata=implode(",",$botdata); $botdata=(string)$reply- user- screen_name.",".$botdata; } file_put_contents($filenameb,$botdata); if($botkey == "0"){ continue; } を追記し、保存する。 空のkaiwalog.txtを作成し、EasyBotter.phpと共にサーバーへアップロードする。 kaiwalog.txtはログファイル用のパーミッションにする。 ※作成しなくても自動作成するようにしてありますが、自分で作成してうpするのが確実 備考 [#ldfe0701] リプライをくれたアカウント名を最新10件記録します。 そのうち、bot(大小文字関係なく)と名の付くアカウントから3回目のリプライにはリプライ返ししません(2回まではリプライをする。) abcdとefghという名のアカウントに対しても制限します。 ↑botと入ってないアカウント名のBOTを指定したい場合に使用して下さい。 毎日ログをリセットしたい [#y24beea8] bot.php内 $eb = new EasyBotter(); の直後に //■■リプライした人の記録リセット■■ if(date("H-i")=="00-00"){$fp = fopen("kaiwalog.txt", "w");fclose($fp);} を入れてください。 0時0分にアクセスした時、ファイルを真っ白にしてから処理を行います。 特定のアカウントに対しては、別のリプライパターンを読み込ませたい [#g6a99bfa] EasyBotter.php内 function makeReplyTweets($replies, $replyFile, $replyPatternFile){ if(empty($this- _replyPatternData[$replyPatternFile]) !empty($replyPatternFile)){ $this- _replyPatternData[$replyPatternFile] = $this- readPatternFile($replyPatternFile); } (略) foreach($this- _replyPatternData[$replyPatternFile] as $pattern = $res){ 1. if(empty($this- _replyPatternData[$replyPatternFile]) !empty($replyPatternFile)){ の直後に $org_repfile = $replyPatternFile;//デフォルトのファイル名を保管 を追記する。 2. foreach($this- _replyPatternData[$replyPatternFile] as $pattern = $res){ の直前に //■■特定の人には別パターン■■ $userName = (string)$reply- user- screen_name; switch(true){ case stristr($userName, "bot") //botと名のつくアカウント名に対して $replyPatternFile = "bot_pattern.php";//bot_pattern.phpを適用する $this- _replyPatternData[$replyPatternFile] = $this- readPatternFile($replyPatternFile); break; case $userName == "abcd" //abcdというアカウント名に対して case $userName == "efgh" //efghというアカウント名に対して $replyPatternFile = "xxx_pattern.php";//xxx_pattern.phpを適用する $this- _replyPatternData[$replyPatternFile] = $this- readPatternFile($replyPatternFile); break; default //それ以外 $replyPatternFile = $org_repfile;//デフォルトのパターンファイル名 } または //■■特定の人には別パターン■■ $userName = (string)$reply- user- screen_name; if(stristr($userName, "bot")){//botと名のつくアカウント名に対して $replyPatternFile = "bot_pattern.php";//bot_pattern.phpを適用する $this- _replyPatternData[$replyPatternFile] = $this- readPatternFile($replyPatternFile); }else if($userName == "abcd" || $userName == "efgh"){ $replyPatternFile = "xxx_pattern.php";//xxx_pattern.phpを適用する $this- _replyPatternData[$replyPatternFile] = $this- readPatternFile($replyPatternFile); }else{ $replyPatternFile = $org_repfile;//デフォルトのパターンファイル名 } を追記する。 特定のアカウントは自動フォローしない [#hd86ba2c] EasyBotter.php内 foreach($followList as $screen_name){ $response = $this- followUser($screen_name); } を foreach($followList as $screen_name){ //■■xxxはフォロー返ししない■■ if(!preg_match("@bot@i",$screen_name)){ $response = $this- followUser($screen_name); } } と変更する。 例ではbotと名のつくアカウントすべて。 コメント [#ub9d67da] 特定のアカウントへのリプライ回数制限を特定ではなく総てのIDに対して10回中4回以上制限するにはどこの記述を替えるのがいいでしょうか?ワイルドカード?とか思って調べてみたんですがうまく動きませんでした。どなたかわかる方いたら教えてください。 -- 名無しさん (2010-11-17 16 38 42) 「特定のアカウントに対しては、別のリプライパターンを読み込ませたい 」をそのままコピペすると、Warning Invalid argument supplied for foreach() が、環境によって出るみたい。その時、foreach((array)$this- _replyPatternData[$replyPatternFile] as $pattern = $res){ に変更すると、解決します。と報告。 -- ナナシ (2010-12-21 22 02 49) 「特定のアカウントに対して別のリプライパターン」を「時間分けポスト」と併用しているのですが、こちらが返したリプライに対するさらなるリプライに、反応語がないとArreyで返してしまいます。対策はありますでしょうか? -- 名無しさん (2011-01-21 08 09 06) 特定のアカウントのTLに対し、個別にリプライパターンを読ませたい場合、上記の「リプライパターンの個別設定」を利用しようとしてるのですがなぜかうまくいきません。どなたかわかりますでしょうか? -- 名無しさん (2011-02-03 00 14 56) 特定のIDに対してTL反応のみさせず、リプライには通常通り返信できるようにしたいのですが可能でしょうか? -- 名無しさん (2011-06-03 01 31 00) 「特定のアカウントとのリプライ回数を制限したい」で特定のIDは制限したまま、botの回数制限は外したいんですが、何か方法はありますか? -- 名無しさん (2011-06-12 23 08 26) ↑「特定のIDは制限したまま、botの回数制限は外したい~」解決しました。 -- 名無しさん (2011-06-16 17 52 22) 「特定のアカウント」ではなく、「特定の単語」でリプライパターンファイルを分ける方法があれば知りたいのですが -- 名無しさん (2011-12-14 00 13 44) 新verだと上記の記述が変わるので、使えないですよね・・・。 -- 名無しさん (2012-11-03 12 11 25) 一応変更したらうまくいった部分書いておきますね。「$userName = (string)$reply- user- screen_name; 」を「$userName = (string)$reply["user"]["screen_name"]; 」にするだけでちゃんと動きます。ただ、これで正解かは不明です。 -- もの (2012-11-03 14 41 52) 『特定のアカウントに対しては、別のリプライパターンを読み込ませたい』のリプライパターンは1アカウントで複数ファイルを用意できるのでしょうか? -- 未熟者 (2013-01-17 23 27 40) 特定のアカウントとのリプライ回数を制限したい [#hcd8233e]は2.1では機能しないのでしょうか。早急に必要なのですが、どこをどうしたら良いのかわからず…。 -- 名無しさん (2013-01-24 19 04 36) 上に書いた者ですが、会話回数制限も、 先に書かれていた方を参考にして 『(string)$reply- user- screen_name』の部分を全て『(string)$reply["user"]["screen_name"]』に置換したら『kaiwalog.txt』に記録され、2.1でも使えました。お騒がせしました。 -- 名無しさん (2013-01-26 15 21 04) TL反応の場合分けは$userName = (string)$tweet["user"]["screen_name"]でいけるとおもう -- 名無しさん (2013-07-17 17 57 45) 名前 コメント