特定の文字列を含むツイートを削除する
twitterで行なっていたテストが終わったので、テストでしていたツイートを削除しました。
今回はtwitterAPI
,requests_oauthlib
を使いました。
from requests_oauthlib import OAuth1Session import json import re from time import sleep def main(): CONSUMER_KEY = '' CONSUMER_SECRET = '' ACCESS_TOKEN = '' ACCESS_SECRET = '' twitter = OAuth1Session(CONSUMER_KEY, client_secret = CONSUMER_SECRET, resource_owner_key = ACCESS_TOKEN, resource_owner_secret = ACCESS_SECRET) req = twitter.get('https://api.twitter.com/1.1/statuses/user_timeline.json', params = {'count': 100}) user_timeline = json.loads(req.text) for tweet in user_timeline: if re.search(r'テストテスト!', tweet['text']): print(tweet['text']) del_req = twitter.post('https://api.twitter.com/1.1/statuses/destroy/{}.json'.format(tweet['id'])) print('DELETE:', json.loads(del_req.text)['id']) sleep(2) if __name__ == '__main__': main()
さくっと使えればよかったので、とりあえずユーザータイムラインから100ツイートごとに拾ってきて削除。 ステータスコードのチェックなども入れるとなおよいでしょう。
実行結果
テストテスト!
DELETE: 826774781261275136
参考
POST statuses/destroy/:id — Twitter Developers
GET statuses/user_timeline — Twitter Developers
user_timelineって直近の3200ツイートまでしか遡れないんですね。