はじめに
PythonでTwitter APIを使おうとした際、以下のようなエラーが表示されることがあります。
Forbidden: 403
403 - You currently have Essential access which includes access to Twitter API v2 endpoints only.
If you need access to this endpoint, you'll need to apply for Elevated access via the Developer Portal.
このエラーは、APIのアクセス権限が足りないことによって発生するものです。
私自身もこのエラーに直面し、調査・対応した結果、無事に解決できましたので、その方法をまとめておきます。
原因:Essential Accessでは制限がある
Twitter APIの利用には、**開発者アカウントのレベル(アクセス権限)**が関係します。
Twitter Developerアカウントを作成した直後の状態では、「Essential Access」という基本的な権限しか与えられていません。
このEssential Accessでは、一部のエンドポイント(特定の操作や情報取得)にアクセスできない制限が設けられており、
より多くの機能を利用するには、**Elevated Access(上位アクセス権)**への申請が必要です。
解決方法:Developer PortalでElevated Accessを申請する
1. Developer Portalにアクセス
以下のURLからTwitterの開発者向けポータルにアクセスします。
https://developer.twitter.com/en/portal
ログイン後、プロジェクトやアプリの管理画面が表示されます。
2. 「Elevated Access」の申請を行う
画面右上またはメニュー内に「Apply for Elevated Access」というボタンがありますので、そちらから申請手続きを行います。
申請時には以下のような内容を記入します:
- どのような目的でTwitter APIを使用するか
- 取得したデータをどのように利用するか
- 自動投稿、データ収集の有無 など
3. 審査を待つ(私の場合は3日)
申請後はTwitter側の審査が行われます。
私の場合は、申請から約3日後に「Twitter Developer Accounts」から承認メールが届きました。
件名は「Welcome to the Twitter Developer Platform!」といった内容で、
メールの受信をもって、Elevated Accessが付与されたことが確認できます。
4. 再度プログラムを実行
アクセス権限が昇格された状態で、再びPythonプログラムを実行すると、
エラーだった403 Forbidden
が発生せず、正常にAPIへアクセスできるようになりました。
まとめ
Twitter APIで「403 Forbidden」エラーが出た場合は、アカウントのアクセスレベルが原因であることがほとんどです。
Essential Accessでは制限があるため、APIを本格的に活用したい場合は、早めにElevated Accessの申請を行うことをおすすめします。
開発者ポータルから申請すれば、数日で承認されるケースも多いため、焦らず対応してみてください。
少しでも参考になれば幸いです。