【Ruby】Twitterアカウント名をツイートから誰でもいじれるようにした

こんにちは,学生エンジニアの迫佑樹(@yuki_99_s)です.
Twitterアカウント名をだれでも変えれるようにしてみました!

f:id:McG:20160217154346p:plain

こんな感じで,ハッシュタグ #さこくんの名前をつけてツイートすると,その名前に変えてくれるスクリプトを書いた.

そしたら,わずか5分足らずに20位のリプが来たのでタイムラインを荒らしたことを申し訳なく思いながら終了.
というかみんなTwitter好きすぎ

f:id:McG:20160217154942p:plain

【スポンサーリンク】

無料体験参加で1000円分のAmazonギフト券プレゼントキャンペーン中!

こんなリプが飛んできた(一部)

ひどくないです?w

みんなの反応

ご迷惑をおかけいたしました.

ソースコード

以下のようなプログラムを作成しました.

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メソッドに渡して名前を変えてあげる処理をしています.

ミスった点

あっ.ってなりました.
deleteメソッドを使っていたんですが,文字列内部分一致で消しちゃうんですね.正規表現に書き換えておきます.

感想

通知が鳴り止まなくて大変,かつTL汚して周りに迷惑なのでやめましょう()

無料の公式メルマガ開始!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です