こんにちは,学生エンジニアの迫佑樹(@yuki_99_s)です.
Twitterアカウント名をだれでも変えれるようにしてみました!
こんな感じで,ハッシュタグ #さこくんの名前
をつけてツイートすると,その名前に変えてくれるスクリプトを書いた.
そしたら,わずか5分足らずに20位のリプが来たのでタイムラインを荒らしたことを申し訳なく思いながら終了.
というかみんなTwitter好きすぎ
こんなリプが飛んできた(一部)
ひどくないです?w
㌐㌏㌎㌻㍄ #さこくんの名前
— WGG@ワグ (@WGG_SH) 2016, 2月 17
㌔㍉コン #さこくんの名前
— WGG@ワグ (@WGG_SH) 2016, 2月 17
㌐㌏㌎㌻㍄ #さこくんの名前
— WGG@ワグ (@WGG_SH) 2016, 2月 17
迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫迫 #さこくんの名前
— お嬢 (@ottosan884) 2016, 2月 17
🏩 #さこくんの名前
— お嬢 (@ottosan884) 2016, 2月 17
🔞 #さこくんの名前
— お嬢 (@ottosan884) 2016, 2月 17
(*^◯^*)ポジハメくん #さこくんの名前
— 政岡 宥人 (@Witch_color) 2016, 2月 17
㍆㌋㌉㌏㌉㌸㌾㌋㌞㌹㌅ #さこくんの名前
— ぱちお++R (@patiorcc) 2016, 2月 17
みんなの反応
ご迷惑をおかけいたしました.
迫うるせぇ
— 春雨 (@v_harusame) 2016, 2月 17
迫うっせぇぞ
— 椎間板ヘルニア (@kuro969) 2016, 2月 17
迫さんの名前がカオスになってて笑う
— Potato4d (@potato4d) 2016, 2月 17
ソースコード
以下のようなプログラムを作成しました.
require "twitter" $client = Twitter::REST::Client.new do |config| config.consumer_key = "自分のConsumer Keyをコピペ" config.consumer_secret = "自分のConsumer Secretをコピペ" config.access_token = "自分のAccess Tokenをコピペ" config.access_token_secret = "自分のAccess Token Secretをコピペ" end $client_streaming = Twitter::Streaming::Client.new do |config| config.consumer_key = "自分のConsumer Keyをコピペ" config.consumer_secret = "自分のConsumer Secretをコピペ" config.access_token = "自分のAccess Tokenをコピペ" config.access_token_secret = "自分のAccess Token Secretをコピペ" end def rename_profile(name) begin $client.update_profile({ name: name }) msg = "迫くんの名前を#{name}に変えたお!!(だれでも変えれる仕様)" return msg rescue => e p e return e end end $client_streaming.user do |object| case object when Twitter::Tweet if (/#さこくんの名前/ =~ object.text) && !(/RT/ =~ object.text) #botにリプライきてから処理開始 tweet = object.text name = tweet.delete("#さこくんの名前") puts name option = { 'in_reply_to_status_id' => object.id } msg = rename_profile(name) $client.update msg,option end end end
Streaming APIを使って #さこくんの名前
が含まれているツイートを取得して,ツイートを整形,定義したrename_profileメソッドに渡して名前を変えてあげる処理をしています.
ミスった点
「迫くんの名前」に当てはまる文字は名前にできないと…
— 政岡 宥人 (@Witch_color) 2016, 2月 17
あっ.ってなりました.
delete
メソッドを使っていたんですが,文字列内部分一致で消しちゃうんですね.正規表現に書き換えておきます.
感想
通知が鳴り止まなくて大変,かつTL汚して周りに迷惑なのでやめましょう()