■リプライによるアイコンと名前の変更
■botのアイコン変更のこと
昨日の記事(→Twitterのbotのアイコン変更)でアイコンを自分でログインして手動変更以外で変更できるようになったー。 やり方については、参考にさせてもらったところのコピペと適宜改変をしただけだけど……。 で、icon.phpをcron使って動かすほどcron余ってないので、ぼっとphpの方から適当な時間に「include_once("icon.php"); 」って感じでに書くことに。 とりあえず曜日ごとに変えようかなあと思って、icon.phpの中身の方を、
if(date("w") == 0 ){
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile_image.json',"POST",array('image' => '@あいこん画像.png'));
}
こんな感じにしてみたり。
■リプライによるアイコン変更
これでもいいけど、リプライで変えられるとそれはそれで遊べるかなあとも思ったり。 てことで、EasyBotterwikiの 「自動フォローではなく特定のリプライを貰った時のみ対象にフォロー要請&リプライする」 をいじってアイコンを変更すればいいっぽいことを、ぐぐってたら見つけたのでやってみたり。 このフォロー関連の所に、iconphpの内容をほぼ全部貼り付け。で、こんな感じに改変。
switch(true){
//半自動フォロー
//case stristr($status, "[[AUTOFOLLOW]]"):
//$status = str_replace("[[AUTOFOLLOW]]","",$status);
case stristr($status, "[[ICONHENKOU1]]"):
$status = str_replace("[[ICONHENKOU1]]","",$status);
//$followreq = $this->consumer->sendRequest("http://twitter.com/friendships/create/$reply_name.json",array(),"POST");
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile_image.json',"POST",array('image' => '@あいこん画像.png'));
$re["status"] = "@".$reply_name." ".$status;
break;
リプライファイル(reply_pattern.php)もこれにあわせて適宜[[AUTOFOLLOW]]の部分を変更ー。
これで、リプライによってアイコン変更はさっくりできたー(´∀`*)
■リプライによるbot.php変更
アイコン変えれば違うキャラのbotっぽくなるー。 てことで、名前とbotphpも変えられれば、 リプライのリクエストによって1つのTwitterアカウントで複数のキャラbotが味わえる……、 と思いついたので、それも試行錯誤ー。 botphp変更は、ファイルを読み込んで上書きすればいいので簡単といえば簡単。ただ、ミスしたら動かなくなるだけで(;´∀`) これもさっきのアイコン変更の所にこんなかんじで追加。 さっきのもこれも、botのキャラを別のキャラに変更するので、最低2キャラ分は用意する必要はあるけど。
$contents = @file_get_contents("キャラ1用botphp原稿.php");
$fp = fopen("ぼっと.php", "w");
fwrite( $fp, $contents );
fclose( $fp );
これで、「○○よろ(キャラ1)」みたいにリプするだけで、
アイコンとbotphp(通常ポストや返信、定期ポスト等一式)を変更できるようにー(´∀`*)
これでかなり別botに近づいた感じ……。
■リプライによる名前変更
で、ここまでは人様が作ったりで公開されてるものを切り貼りしてればなんとかなったんだけど……。 名前変更は、検索しにくい単語(「名前」とかw)というのもあって見つけられずー; で、アイコン変更の応用でできそうな気はしたのでそれを眺めながらあれこれ検索しまくった結果、 TwitterAPIで検索して出てきた「POST account/update_profile」とか、それっぽいような気がしたり。 てことでここに辿り着いた。↓ https://dev.twitter.com/docs/api/1/post/account/update_profile で、当てずっぽうにアイコン変更のを改変してみた結果、多少いじっただけで割とあっさり名前変更できたー(´∀`*)
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile_image.json',"POST",array('image' => '@あいこん画像.png'));
↓↓↓
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile.json',"POST",array('name' => 'キャラ1のなまえ'));
これでOKだったー(´∀`*)
てことで。
リプライだけで、あるいは設定した時間とかになっただけで、
ほぼ別botに切り換えることができるようにー。
さっきのページを参考にすれば、「url」「location」あたりも変更できるはずー。
キャラbotとしてはほぼ意味はなさそうだけど、壁紙とか色遣いとかも変えようと思えばできるはずー。
一応やってみた。
//場所変更
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile.json',"POST",array('location' => 'ばしょ'));
//URL変更
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile.json',"POST",array('url' => 'あどれす'));
//背景画像変更
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile_background_image.json',"POST",array('image' => '@背景画像'));
//プロフィール文変更
$req = $to->OAuthRequestImage('https://api.twitter.com/1.1/account/update_profile.json',"POST",array('description' => 'せつめい……'));
てことで、リプライによる変更と時間設定による変更(というかデフォ設定に戻す)を組み合わせれば、
目的次第では割と実用的なレベルになったかも。
■変更箇所メモ
▼upするファイル・OAuth.php
・twitteroauth.php(指定箇所変更)
・icon.php(ファイル名適宜変更)
・EasyBotter.php(リプライで変更する場合)
・bot.php(→icon.php) ▼変更する箇所
・twitteroauth.phpを指定通り(全部同じファイル使い回しで可)
・icon.php(Consumer key等の部分をそのbotのsetting.phpと同じものに変更、変更内容)
・EasyBotter.php(リプライで変更する場合)
・bot.php(→icon.php) 特にicon.phpはコピペしてリネームして使いまわすから、 Consumer key等がコピペもとのままだと、元のbotの方が書き換わるから注意ー(;´∀`) てかやった(;´∀`) おわり。
■追記(2012.9.10)
なんかTwitter、API関連が変わるとかなんとか。 →(新しい方)REST API v1.1 Resources (・ω・`。) てことでよくわからないけど、そのうち使えなくなるっぽいってことで書き換えてみたり。 で、一応ここメモ代わりに書いてるので(日記でなく)、この記事の中身もついでに置換したり。こんな。 とりあえず動いてるからいいんじゃないかなあ(;´∀`)https://api.twitter.com/1/account/update_profile.json https://api.twitter.com/1/account/update_profile_background_image.xml https://api.twitter.com/1/account/update_profile_image.xml ↓ https://api.twitter.com/1.1/account/update_profile.json https://api.twitter.com/1.1/account/update_profile_background_image.json https://api.twitter.com/1.1/account/update_profile_image.json
(最終更新日:2012/09/10)