プログラミング

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

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

f:id:McG:20160217154346p:plain

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

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

f:id:McG:20160217154942p:plain

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

ひどくないです?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汚して周りに迷惑なのでやめましょう()

公式LINEに登録してビジネスを学ぼう
無料LINEマガジンへの登録で、5つの豪華特典をプレゼント!
  1. 日本一わかりやすい「経済的自立を果たす人生攻略の10ステップ」(33分23秒)
  2. 見るだけで売上3倍は確実。「時給10円から年商10億」に至るまでの全ての道のり(39分15秒)
  3. 有料講演会の内容を公開。最短最速で0→1を立ち上げる起業術(1時間08分35秒)
  4. 起業初心者へ向けた即金で10万円を稼ぐ具体マニュアル(PDF24ページ)
  5. 資本主義社会においてお金持ちになる5つのルール(17分36秒)
その他、有益なコラムを完全無料で閲覧し放題!
\豪華特典を今すぐゲット/