#python-twitterで闇のツイートを消す
##きっかけ
友人から中学時代のツイートのスクショが送られ、懐かしいなーと思いつつ自分の過去ツイートを見返してみるとあまりにも酷かったので一括削除しようと思いました。本当に酷く痛々しいので載せられません。
ちょうど、TwitterのAPIを触ってみたいと思っていていい機会なのでツイート一括削除をやってみました。(黒歴史クリーナーを使うのは負けな気がした)
##API利用申請
以下のサイトから、TwitterのAPI利用申請をします。
https://developer.twitter.com/en/apps
承認までかかる時間は人それぞれのようですが、私は1回では申請が通らず、1ヶ月くらいかかりました。
##Twitterデータの取得
APIから取得できるデータは、1回3200件までとのことなので今回はTwitterデータをダウンロードし、そこからデータを参照します。
以下のURLから取得できます。
ダウンロードしたら、その中にあるJSONファイルを確認し、Twitterのデータがダウンロードできてるかを確認します。
1ツイートの情報は、以下のようにJSONファイルに書かれています。
{
"tweet" : {
"retweeted" : false,
"source" : "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
"entities" : {
"hashtags" : [ ],
"symbols" : [ ],
"user_mentions" : [ ],
"urls" : [ ]
},
"display_text_range" : [ "0", "52" ],
"favorite_count" : "1",
"id_str" : "1249886861201309697",
"truncated" : false,
"retweet_count" : "0",
"id" : "1249886861201309697",
"created_at" : "Tue Apr 14 02:27:04 +0000 2020",
"favorited" : false,
"full_text" : "nasneのHDDガリガリ音して本格的にやばいサポート終了してるから買い替えだけどいい代替製品あんのかな",
"lang" : "ja"
}
}
##ライブラリのインストール
python-twitterをpipを使用してインストールします。
pip install python-twitter
##削除コード
実際のPythonのコードです。
twitter.Api()には、承認後に作成するアプリのConsumer API keys
とAccess token & access token secret
を書きます。
今回は、2016年より前の痛々しいツイートを消したいので、created_at
が2016より小さいidを取得し、DestroyStatus
に渡してあげます。
import twitter
import json
tweet_json_path = 'resource/tweet.json'
json_open = open(tweet_json_path, 'r')
json_load = json.load(json_open)
api = twitter.Api(
consumer_key='*****************',
consumer_secret='*****************',
access_token_key='*****************',
access_token_secret='*****************'
)
for n in json_load:
if int(n["tweet"]["created_at"][-4:]) < 2016:
api.DestroyStatus(n["tweet"]["id"])
api.PostUpdates('2016年より前のツイート削除が完了 from Python')
あとは実行するだけです。
これで勉強しつつ、過去の闇を葬り去ることができました。
めでたしめでたし