Twitter APIが有料化になり使用を諦めていたのですが、よく見たら無料版が!
ということで試してみました。
ツイートとツイート削除くらいはAPI経由で実施できることを確認しました。
Twitter APIのプラン
無料プランは以下だけ可能で、それ以上のことは有料プランに入る必要がある・・・
Botくらいは作れそう
- 月間ツイート投稿1,500件(1日のAPI経由投稿数の上限は50件)
- Twitterログイン機能の利用
- ツイートの削除も可能(1日のAPI経由削除数の上限は50件)
- 一部ご自身のアカウントのデータの取得(フォロワー数、フォロー数など)
Twitter API 無料版の申請
有料化が始まる前の申請より簡単になった印象
・Twitter Developer Portalから申請します。
申請項目の中で文章が必要なのは↓だけ。
あとはチェックしておけばOK。
即、ID等が発行されて使用できるようになる。
- Describe all of your use cases of Twitter’s data and API:
Twitter のデータと API のユースケースをすべて説明してください
補足:申請した英語文章の例
適当に↓を入力したので参考に記載
I use this API for programming learning. I would like to create a program that automatically thinks about the content to tweet. Also, since there are already over 500 tweets, I would like to delete them using the API. By implementing these, I will be able to improve my programming skills and create an environment where I can run programs regularly. This is fun and educational
訳:
私はこのAPIをプログラミング学習で使用します。
自動で呟く内容を考えて呟くプログラムを作りたいと思います。
あとは、すでに呟いている内容が500を超えるので、APIを利用して削除したいと思います。
これらを実施することで、私のプログラミング能力向上、定期的にプログラムを実行する環境構築ができる。これは楽しいし、勉強になる
実行できたプログラム(Python)
確かに、ツイートの投稿と削除は実施できました。
ただ、ツイート削除に関して使えない(権限?のエラーではじかれる)関数もありました。
※プログラムはPythonで作成しています
過去のツイート全消しプログラム
DestroyStatus
これは実行でき、プログラム削除できました。
作成したプログラムを張っておきます。
import twitter
import json
api = twitter.Api(
consumer_key='自分のアカウントで書き換え必要',
consumer_secret='自分のアカウントで書き換え必要',
access_token_key='自分のアカウントで書き換え必要',
access_token_secret='自分のアカウントで書き換え必要',
sleep_on_rate_limit=False
)
with open('tweets.js', encoding='utf-8', mode='r') as f:
tj=json.load(f)
for tweet0 in tj:
tweet = tweet0['tweet']
print(tweet['id'])
try:
api.DestroyStatus(tweet['id'])
except Exception as e:
print(e.args)
※tweets.jsはツイッターからダウンロードします。申請してからダウンロードできるようになるまで1日くらいかかります。
また、tweets.js
内の window.YTD.tweet.part0 =
を削除しておく必要があります。
.user_timeline
これは↓のようなエラーが出たの無料版では使用できないのかな?と思います
You currently have access to a subset of Twitter API v2 endpoints and limited v1.1 endpoints (e.g. media post, oauth) only. If you need access to this endpoint, you may need a different access level. You can learn more here: https://developer.twitter.com/en/portal/product
コメント