「ver.1.42*よくある質問*OAuth」の編集履歴(バックアップ)一覧はこちら

ver.1.42*よくある質問*OAuth」(2010/06/24 (木) 19:00:57) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

PHPファイルを編集する上で、基本使いそうなPHP制御構造等は[[Twitter Bot関連リンク]]にお勧め解説サイトをリンクしています。 ※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメントを書く」から誰かに頼んで下さい。 #contents *ver.1.42でOAuth認証するには phaさんが開放して下さっているもの(EasyBotterから)を使う場合の解説です。 **ファイルの用意 [[PHP+OAuthでTwitter>>http://wolf.silk.to/labo/oauth.html]]さんで配布されている''oauth_test.txt''と[[Twitter API Wiki / OAuth Examples>>http://github.com/abraham/twitteroauth/downloads]]で配布されているver0.2.0以上のzipファイルをDLして下さい。 zipは解凍して、''OAuth.php''と''twitterOAuth.php''だけ使用します。~~oauth_test.txtは''oauth_test.php''へ改名して下さい。 reply_random.php等を置いている同ディレクトリ内へアップロードして下さい。 **Access Tokenの取得 +BOTアカウントでTwitterへログインする。 +[[こちらのページ>http://pha22.net/twitterbot/2.0/setting.php]]から"OAuth認証について"をクリック。 +アプリケーションを許可するか聞かれる→許可をクリック。 +その後、転送されたページに表示されている&color(red){''Access Token/Access Token Secretの値2つをメモする。''} **reply_random.phpの編集 reply_random.php内 =|BOX| //各種設定 chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); ||= の直後へ =|PERL| require_once("twitterOAuth.php"); $consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値 $consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値 $access_token = ""; // Access Tokenの値 $access_token_secret = ""; // Access Token Secretの値 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $replydata = $to->OAuthRequest('http://twitter.com/statuses/replies.json', array(), 'GET'); ||= を記入する。 ※↑に先ほど取得したAccess Token/Access Token Secretを記述する。''Consumer Key/Consumer Secretは弄らないで下さい。'' その付近にある =|BOX| $st =& new Services_Twitter($username, $password); $replydata = $st->getReplies(); ||= を代わりに削除して下さい。 次に =|BOX| //投稿する $in_reply_to_status_id = $replies2[$i]["id"]; $result = $st->setUpdate(array('status'=>$message,'in_reply_to_status_id'=>$in_reply_to_status_id)); ||= を探し、まるまる =|PERL| //投稿する $in_reply_to_status_id = $replies2[$i]["id"]; $result = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message,'in_reply_to_status_id'=>$in_reply_to_status_id),"POST"); ||= へ変更して下さい。 以上でreply_random.phpの編集は終わりです。 **post_random.phpの編集 同じくpost_random.php内 =|BOX| //各種設定 chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); ||= の直後へ =|PERL| require_once("twitterOAuth.php"); $consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値 $consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値 $access_token = ""; // Access Tokenの値 $access_token_secret = ""; // Access Token Secretの値 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); ||= を記入する。 その付近にある =|BOX| $st =& new Services_Twitter($username, $password); ||= を代わりに削除して下さい。 次に =|BOX| //twitterに投稿する $result = $st->setUpdate($message); ||= を探し、まるまる =|PERL| //twitterに投稿する $result = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message),"POST"); ||= へ変更して下さい。 以上でpost_random.phpの編集は終わりです。 **from.phpの編集 ファイルの中身すべてを削除し =|PERL| <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Twitter手動投稿用フォーム</title> </head> <body> <center> <p>Twitter手動投稿用フォーム</p> <p>手動で何か投稿させたいときに使ってください。</p> <form action="form.php" method="POST"> 発言内容:<br /> <textarea name="message" cols="20" rows="4"></textarea><br /> <input type="submit" name="submit" value="post" /><br /> </form> <?php if(isset($_POST["submit"])){ chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); require_once("twitterOAuth.php"); $username = ""; //userid $consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値 $consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値 $access_token = ""; // Access Tokenの値 $access_token_secret = ""; // Access Token Secretの値 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $message = $_POST["message"]; $result = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message),"POST"); if($result){ echo "Twitterへのpostに成功しました。<br />"; echo "@<a href='http://twitter.com/{$username}' target='_blank'>{$username}</a>に投稿したメッセージ:{$message}"; }else{ echo "Twitterへの投稿に失敗しました。パスワードやユーザー名をもう一度チェックしてみてください。<br />"; echo "ユーザー名:@<a href='http://twitter.com/{$username}' target='_blank'>{$username}</a><br />"; echo "投稿しようとしたメッセージ:{$message}"; } } ?> </center> </body> </html> ||= と書き換えて下さい。 Access Token/Access Token Secretの記述も忘れずに! **備考 このままだと{id}や{timeline_name}と言ったものが使えなくなっています。 reply_random.phpとpost_random.php内 =|BOX| if(preg_match("@{.+?}@",$message) == 1){ //時間などを変換する require_once("Services/convert_text.php"); $message = convert_text($message); //id、名前を変換する //タイムラインからランダムに最近発言した人のデータを取る if(preg_match("@{timeline_id}@",$message) === 1){ $randomTweet = $st->getRandomTweet(20); $message = preg_replace("@{timeline_id}@u",$randomTweet["user"]["screen_name"],$message); } if(preg_match("@{timeline_name}@",$message) === 1){ $randomTweet = $st->getRandomTweet(20); $message = preg_replace("@{timeline_name}@u",$randomTweet["user"]["name"],$message); } //ランダムな一人のfollowerデータを取る if(preg_match("@{id}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{id}@u",$randomFollowersData["screen_name"],$message); } if(preg_match("@{name}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{name}@u",$randomFollowersData["name"],$message); } if(preg_match("@{follower_id}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{follower_id}@u",$randomFollowersData["screen_name"],$message); } if(preg_match("@{follower_name}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{follower_name}@u",$randomFollowersData["name"],$message); } //ランダムな一人のfollowingデータを取る if(preg_match("@{following_id}@",$message) === 1){ $randomFollowingsData = $st->getRandomFollowingsData(); $message = preg_replace("@{following_id}@u",$randomFollowingsData["screen_name"],$message); } if(preg_match("@{following_name}@",$message) === 1){ $randomFollowingsData = $st->getRandomFollowingsData(); $message = preg_replace("@{following_name}@u",$randomFollowingsData["name"],$message); } } ||= をまるまる =|PERL| if(preg_match("@{.+?}@",$message) == 1){ //時間などを変換する require_once("Services/convert_text.php"); $message = convert_text($message); //id、名前を変換する //タイムラインからランダムに最近発言した人のデータを取る if(preg_match("@{timeline_id}@",$message) === 1){ $timeline_id_result = $to->OAuthRequest("http://twitter.com/statuses/user_timeline.xml?count=20",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$timeline_id_result,$timeline_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{timeline_id}@u",$timeline_id_kekka[array_rand($timeline_id_kekka)][1],$message); } if(preg_match("@{timeline_name}@",$message) === 1){ $timeline_name_result = $to->OAuthRequest("http://twitter.com/statuses/user_timeline.xml?count=20",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$timeline_name_result,$timeline_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{timeline_name}@u",$timeline_name_kekka[array_rand($timeline_name_kekka)][1],$message); } //ランダムな一人のfollowerデータを取る if(preg_match("@{id}@",$message) === 1){ $follower_id_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$follower_id_result,$follower_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{id}@u",$follower_id_kekka[array_rand($follower_id_kekka)][1],$message); } if(preg_match("@{name}@",$message) === 1){ $follower_name_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$follower_name_result,$follower_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{name}@u",$follower_name_kekka[array_rand($follower_name_kekka)][1],$message); } if(preg_match("@{follower_id}@",$message) === 1){ $follower_id_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$follower_id_result,$follower_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{follower_id}@u",$follower_id_kekka[array_rand($follower_id_kekka)][1],$message); } if(preg_match("@{follower_name}@",$message) === 1){ $follower_name_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$follower_name_result,$follower_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{follower_name}@u",$follower_name_kekka[array_rand($follower_name_kekka)][1],$message); } //ランダムな一人のfollowingデータを取る if(preg_match("@{following_id}@",$message) === 1){ $friends_id_result = $to->OAuthRequest("http://twitter.com/statuses/friends.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$friends_id_result,$friends_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{following_id}@u",$friends_id_kekka[array_rand($friends_id_kekka)][1],$message); } if(preg_match("@{following_name}@",$message) === 1){ $friends_name_result = $to->OAuthRequest("http://twitter.com/statuses/friends.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$friends_name_result,$friends_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{following_name}@u",$friends_name_kekka[array_rand($friends_name_kekka)][1],$message); } } ||= へ書き換えて下さい。 これでOAuth認証への切り替えは終了です。お疲れ様でした。テストしてみましょう。 なお"EasyBotterから"の部分を変更したい場合はver.2.0のやり方と変わりませんので、wiki内をみて下さい。
PHPファイルを編集する上で、基本使いそうなPHP制御構造等は[[Twitter Bot関連リンク]]にお勧め解説サイトをリンクしています。 ※wikiの編集が分からなくて、追加してほしい項目がある場合はページ下の「コメントを書く」から誰かに頼んで下さい。 #contents *ver.1.42でOAuth認証するには phaさんが開放して下さっているもの(EasyBotterから)を使う場合の解説です。 **ファイルの用意 [[PHP+OAuthでTwitter>>http://wolf.silk.to/labo/oauth.html]]さんで配布されている''oauth_test.txt''と[[Twitter API Wiki / OAuth Examples>>http://github.com/abraham/twitteroauth/downloads]]で配布されているver0.2.0以上のzipファイルをDLして下さい。 zipは解凍して、''OAuth.php''と''twitterOAuth.php''だけ使用します。~~oauth_test.txtは''oauth_test.php''へ改名して下さい。 reply_random.php等を置いている同ディレクトリ内へアップロードして下さい。 **Access Tokenの取得 +BOTアカウントでTwitterへログインする。 +[[こちらのページ>http://pha22.net/twitterbot/2.0/setting.php]]から"OAuth認証について"をクリック。 +アプリケーションを許可するか聞かれる→許可をクリック。 +その後、転送されたページに表示されている&color(red){''Access Token/Access Token Secretの値2つをメモする。''} **reply_random.phpの編集 reply_random.php内 //各種設定 chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); の直後へ require_once("twitterOAuth.php"); $consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値 $consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値 $access_token = ""; // Access Tokenの値 $access_token_secret = ""; // Access Token Secretの値 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $replydata = $to->OAuthRequest('http://twitter.com/statuses/replies.json', array(), 'GET'); を記入する。 ※↑に先ほど取得したAccess Token/Access Token Secretを記述する。''Consumer Key/Consumer Secretは弄らないで下さい。'' その付近にある $st =& new Services_Twitter($username, $password); $replydata = $st->getReplies(); を代わりに削除して下さい。 次に //投稿する $in_reply_to_status_id = $replies2[$i]["id"]; $result = $st->setUpdate(array('status'=>$message,'in_reply_to_status_id'=>$in_reply_to_status_id)); を探し、まるまる //投稿する $in_reply_to_status_id = $replies2[$i]["id"]; $result = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message,'in_reply_to_status_id'=>$in_reply_to_status_id),"POST"); へ変更して下さい。 以上でreply_random.phpの編集は終わりです。 **post_random.phpの編集 同じくpost_random.php内 //各種設定 chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); の直後へ require_once("twitterOAuth.php"); $consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値 $consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値 $access_token = ""; // Access Tokenの値 $access_token_secret = ""; // Access Token Secretの値 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); を記入する。 その付近にある $st =& new Services_Twitter($username, $password); を代わりに削除して下さい。 次に //twitterに投稿する $result = $st->setUpdate($message); を探し、まるまる //twitterに投稿する $result = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message),"POST"); へ変更して下さい。 以上でpost_random.phpの編集は終わりです。 **from.phpの編集 ファイルの中身すべてを削除し <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Twitter手動投稿用フォーム</title> </head> <body> <center> <p>Twitter手動投稿用フォーム</p> <p>手動で何か投稿させたいときに使ってください。</p> <form action="form.php" method="POST"> 発言内容:<br /> <textarea name="message" cols="20" rows="4"></textarea><br /> <input type="submit" name="submit" value="post" /><br /> </form> <?php if(isset($_POST["submit"])){ chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); require_once("twitterOAuth.php"); $username = ""; //userid $consumer_key = "WtNt5W6js77cFHvKyVgf6Q"; // Consumer keyの値 $consumer_secret = "h3In28YiiRxtg4PTpkhPmrlJSGOCTG2oh3hslQ"; // Consumer secretの値 $access_token = ""; // Access Tokenの値 $access_token_secret = ""; // Access Token Secretの値 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $message = $_POST["message"]; $result = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>$message),"POST"); if($result){ echo "Twitterへのpostに成功しました。<br />"; echo "@<a href='http://twitter.com/{$username}' target='_blank'>{$username}</a>に投稿したメッセージ:{$message}"; }else{ echo "Twitterへの投稿に失敗しました。パスワードやユーザー名をもう一度チェックしてみてください。<br />"; echo "ユーザー名:@<a href='http://twitter.com/{$username}' target='_blank'>{$username}</a><br />"; echo "投稿しようとしたメッセージ:{$message}"; } } ?> </center> </body> </html> と書き換えて下さい。 Access Token/Access Token Secretの記述も忘れずに! **備考 このままだと{id}や{timeline_name}と言ったものが使えなくなっています。 reply_random.phpとpost_random.php内 if(preg_match("@{.+?}@",$message) == 1){ //時間などを変換する require_once("Services/convert_text.php"); $message = convert_text($message); //id、名前を変換する //タイムラインからランダムに最近発言した人のデータを取る if(preg_match("@{timeline_id}@",$message) === 1){ $randomTweet = $st->getRandomTweet(20); $message = preg_replace("@{timeline_id}@u",$randomTweet["user"]["screen_name"],$message); } if(preg_match("@{timeline_name}@",$message) === 1){ $randomTweet = $st->getRandomTweet(20); $message = preg_replace("@{timeline_name}@u",$randomTweet["user"]["name"],$message); } //ランダムな一人のfollowerデータを取る if(preg_match("@{id}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{id}@u",$randomFollowersData["screen_name"],$message); } if(preg_match("@{name}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{name}@u",$randomFollowersData["name"],$message); } if(preg_match("@{follower_id}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{follower_id}@u",$randomFollowersData["screen_name"],$message); } if(preg_match("@{follower_name}@",$message) === 1){ $randomFollowersData = $st->getRandomfollowersData(); $message = preg_replace("@{follower_name}@u",$randomFollowersData["name"],$message); } //ランダムな一人のfollowingデータを取る if(preg_match("@{following_id}@",$message) === 1){ $randomFollowingsData = $st->getRandomFollowingsData(); $message = preg_replace("@{following_id}@u",$randomFollowingsData["screen_name"],$message); } if(preg_match("@{following_name}@",$message) === 1){ $randomFollowingsData = $st->getRandomFollowingsData(); $message = preg_replace("@{following_name}@u",$randomFollowingsData["name"],$message); } } をまるまる if(preg_match("@{.+?}@",$message) == 1){ //時間などを変換する require_once("Services/convert_text.php"); $message = convert_text($message); //id、名前を変換する //タイムラインからランダムに最近発言した人のデータを取る if(preg_match("@{timeline_id}@",$message) === 1){ $timeline_id_result = $to->OAuthRequest("http://twitter.com/statuses/user_timeline.xml?count=20",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$timeline_id_result,$timeline_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{timeline_id}@u",$timeline_id_kekka[array_rand($timeline_id_kekka)][1],$message); } if(preg_match("@{timeline_name}@",$message) === 1){ $timeline_name_result = $to->OAuthRequest("http://twitter.com/statuses/user_timeline.xml?count=20",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$timeline_name_result,$timeline_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{timeline_name}@u",$timeline_name_kekka[array_rand($timeline_name_kekka)][1],$message); } //ランダムな一人のfollowerデータを取る if(preg_match("@{id}@",$message) === 1){ $follower_id_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$follower_id_result,$follower_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{id}@u",$follower_id_kekka[array_rand($follower_id_kekka)][1],$message); } if(preg_match("@{name}@",$message) === 1){ $follower_name_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$follower_name_result,$follower_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{name}@u",$follower_name_kekka[array_rand($follower_name_kekka)][1],$message); } if(preg_match("@{follower_id}@",$message) === 1){ $follower_id_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$follower_id_result,$follower_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{follower_id}@u",$follower_id_kekka[array_rand($follower_id_kekka)][1],$message); } if(preg_match("@{follower_name}@",$message) === 1){ $follower_name_result = $to->OAuthRequest("http://twitter.com/statuses/followers.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$follower_name_result,$follower_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{follower_name}@u",$follower_name_kekka[array_rand($follower_name_kekka)][1],$message); } //ランダムな一人のfollowingデータを取る if(preg_match("@{following_id}@",$message) === 1){ $friends_id_result = $to->OAuthRequest("http://twitter.com/statuses/friends.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<screen_name>(.+?)<\/screen_name>/is",$friends_id_result,$friends_id_kekka,PREG_SET_ORDER); $message = preg_replace("@{following_id}@u",$friends_id_kekka[array_rand($friends_id_kekka)][1],$message); } if(preg_match("@{following_name}@",$message) === 1){ $friends_name_result = $to->OAuthRequest("http://twitter.com/statuses/friends.xml?screen_name=",array(),"GET"); preg_match_all("/.*?<name>(.+?)<\/name>/is",$friends_name_result,$friends_name_kekka,PREG_SET_ORDER); $message = preg_replace("@{following_name}@u",$friends_name_kekka[array_rand($friends_name_kekka)][1],$message); } } へ書き換えて下さい。 これでOAuth認証への切り替えは終了です。お疲れ様でした。テストしてみましょう。 なお"EasyBotterから"の部分を変更したい場合はver.2.0のやり方と変わりませんので、wiki内をみて下さい。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー