読者です 読者をやめる 読者になる 読者になる

Code Lab

CakePHP/Python/Swiftを勉強中... 好きなことで生きて行く!

【Python】ナゲッツ1年分いただきマッスル計画 #ナゲッツ親子

これを使って、みんなでナゲパしようぜぃ!
ヽ(*´∀`)八(´∀`*)ノ

と思っていたが、申し訳ねぇ!!!
ナゲッツ親子がもう終了していた!!
が、しかしこれで終わりではないはず!次回もあるはず!
なので、「ナゲッツ1年分いただきマッスル計画」のナゲッツするまでの記録をご覧いただこう。
#ナゲッツ親子

ナゲッツ親子当選までの記録

突如現れた「#ナゲッツ親子」

はじめしゃちょーのつぶやきを見ていた時に出会いました...

おかえり! #ナゲッツ親子

(こいつ何言ってるんだ....????)

まってたよぉおお! #ナゲッツ親子

(おまえまで!?!?)

もう社会現象ですね。

ハッシュタグを検索してみるとそこには大量のナゲッツ親子の目撃情報が!!!
(じっさいは「ああああ #ナゲッツ親子」や「やったね! #ナゲッツ親子」ばっかりでしたがw)

目撃情報には、あの某マクドナルドからリプが来てました。
f:id:natuta:20170501093012p:plain

これね。
んで、ナゲッツ親子ってなんぞやってことでGoogle先生に聞いたところ、
www.mcdonalds.co.jp
※キャンペーン終了のため来ている場合があります

目撃情報のカウントの最後の3桁が390番だった場合に当選ということで、
当選した方にはナゲット1年分の無料チケットがもらえるみたい。

ナゲット1年分もいらんでしょうが...
本当にTwitterはくだらないことが好きなんだから...やるか。

ってことでほぼ全てのツイートに「#ナゲッツ親子」ってつぶやきました。
(@shota_toolは技術的なことを呟くためのサブ垢です。本垢の方で参加していました。)
約50ツイートほど。

でも当たらない。
まぁ、そんなに簡単に当たるわけないよ。1分で1000カウント以上進んでたんだから。

仕方ない。bot作ろう。

botで無理矢理にでも、もぎ取ってやる(#^ω^)

当たらなさすぎてムキになった。
仕方ない。
Pythonでbot作ってやる。
ナゲットくらい余裕でゲットしてやるわ!!!!

てれっててれれ、てれっててれれ↓、てててててててててってって♪
3分ナゲットクッキング♪
BGM(てれってってーてれってってーてれってってっててれれれれ…)

ツイッターのアカウントを取得

とりあえず、
約50ツイートほどした本垢はフォロワーにめっちゃ怒られたのでナゲット用のサブ垢を作ります。

メールアドレスは、既存のもので大丈夫。
メールアドレスの「@」より前の文字列に適当な箇所に「.」をうつと、
新しいメールアドレスとして認識してくれるので、すぐにサブ垢を作ることができます!

Twitter APIをゲッチュ

必要な4つのコードをメモします。
apps.twitter.com

  • Create New App

f:id:natuta:20170501095538p:plain
何もAppを持っていない場合は、でかく中央にあるはず。

  • Create an application

f:id:natuta:20170501100042p:plain
基本的に、てきとうでok!
「Website」は今回はローカルで動かすだけなので「127.0.0.1」でおk

  • Keys and Access Tokens

f:id:natuta:20170501100534p:plain
「Consumer Key (API Key)」と「Consumer Secret (API Secret)」はあとで使うので、メモしておいてください。
「Create my access token」をクリックして、アクセストークンを生成し、
「Access Token」と「Access Token Secret」もメモしておいてください!

Pythonで呟くのに必要なものを揃える。
pip install twitter

以上。

プログラムを書く

ツイッターのアカウントを取得でメモした4つのコードを使います。
「Consumer Key (API Key)」と「Consumer Secret (API Secret)」と「Access Token」と「Access Token Secret」

import twitter
import time

auth = twitter.OAuth(consumer_key = "", #Consumer Key (API Key)
	consumer_secret = "", #Consumer Secret (API Secret)
	token = "", #Access Token
	token_secret = "") #Access Token Secret

count = 0

while True:
	t = twitter.Twitter(auth=auth)

	status = str(count) + "回目のナゲットください #ナゲッツ親子"
	t.statuses.update(status=status)

	count = count+1
	time.sleep(60) # 1分間おやすみ

status = str(count) + "回目のナゲットください #ナゲッツ親子"の部分は好きな文字列を入れてください!
あ、「#ナゲッツ親子」は忘れないこと。
そして、ハッシュタグの前には半角スペースを入れないとダメ!

str(count)の部分は、カウントを入れることでツイートの重複を防ぐようにしています。
同じ内容のつぶやきだと、弾かれてしまったような気がするので...w

time.sleep(60) で1分間の休みを入れてあげることで、他の方に対するちょっとした配慮を...
というのは建前で、apiの制限など全く気にしていないので、とりあえず1分休んどけば制限とかで止められることないかなと思って1分にしています!
もしかしたら、もうちょっと間隔狭くてもいいかもしれないですが...

とりあえず、これでbotはできました!

動かしてみるの巻
python file_name.py

で放置しましょう!

僕は、サーバーにアップして動かしたので、

python file_name.py &

のようにして、exitしても大丈夫なようにしました。

約1日回して、約1300ツイート超つぶやいてくれていました!やったね!

約1日回してみた結果...

マクドナルドの自動返信が動かなくなる時間がちょこちょこあり、一度止まると2時間とか普通にとなっていたので、
1300回つぶやいても、実際の返信の数は500ほどでした。

この手のキャンペーンは僕と同じようなこと考えている人が多いようで、
タイムスタンプなどでずっとつぶやいている人もいましたし、カウントで重複を防いでいる方もいました。
JAVAでシステム作っている人は、配布などしていたようなのでかなりライバルが多かったんだなとw

そして、重要な結果ですが...


無事にゲットすることができました!
f:id:natuta:20170501143453p:plain


たくさんの方が一気に応募していたようで、1分に1度呟くのですが、目撃情報のカウントが一気に増えるので
無理かなと思っていたのですがw
ちょっとうれしいです!

友達とナゲパします!!!
うぇーい!!!!

本当は、390番ぴったしに一回だけツイートできれば良かったのですが、マックの返信の問題もあったのでそこは断念しました...
次回、このようなキャンペーンが来たらまた参加したいですね!!
みんなも、ナゲットげっとじゃぞ!!!