X(旧:Twitter)のAPIの使い方・活用方法-有料化後の無料プランで出来ることは

X(旧:Twitter)のAPIの使い方

ここでは、X(旧:Twitter)のAPIの具体的な利用手順等について、1つずつ、解説を進めて参ります。

Twitterの開発者アカウントへのサインアップ手順

Twitter APIを用いたアプリ開発等を行いたい場合、まずは、Twitterの開発者アカウントへとサインアップを済ませる必要があります。
手順は以下の通りです。

Twitter Developersにアクセス

最初に、Twitter Developersにアクセスします。
URLは以下の通りです。

https://developer.twitter.com/en/apps

「アプリを作成」をクリック

「Create an App」のバナーをクリックします。

「申請」をクリック

メッセージ内容を熟読したうえで、「Apply」のボタンをクリックします。

(無料で始める場合は、)「フリーアカウント」を選択

無料プランから始めたい、という場合、「Sign up for free account」のテキストをクリックします。

TwitterAPIの利用目的等の入力

まず、API等の利用目的を、英語で入力します。
利用目的は、勿論、各ユーザーによって異なりますが、例えば、Pythonを用いたAPI操作の勉強をしている、プログラミング初心者の場合であれば、以下のように入力してみることも検討可能でしょう。

I am currently learning how to manipulate the API using Python.
I was looking for a well-known API that is familiar and usable, and I found out about Twitter’s API.
I would like to learn and understand more about using APIs with Python through the Twitter API, which is famous and used by many people.
Of course, I will abide by the Twitter API terms of use and be sincere to the community.

続いて、各チェックボックスの内容をよく確認したうえで、同意する場合、ボックスにチェックを入れて、「提出(Submit)」のバナーをクリックします。

開発者ポータルが表示される

このような開発者向けポータル(ダッシュボード)が表示されればOKです。

TwitterのAPI利用プランの変更を行いたい場合

フリープランから、ベーシックプランやプロプランへのアップグレード等を行いたい場合、手順は以下の通りです。

「プロダクト」の箇所をクリック

Twitterの開発者向けポータルの画面左側のメニューから、「プロダクト」→「X API v2」をクリックします。

変更したいプラン(タブ)を選択

プロプランか、ベーシックプラン、変更したい先のプランを選択します。

アップグレードの実施

「Upgrade to (プラン名)in 1-Click」のバナーをクリックし、アップグレードを進めます。

TwitterAPIを利用してツイートを投稿してみよう

TwitterAPIを利用して、Pythonコードの記述内容を元に、ターミナルからツイート投稿を実行したい場合、その手順は以下の通りです。

ユーザー認証設定を済ませる

APIキー等の取得を始める前に、まずは、ユーザー認証設定を済ませる必要があります。
手順は以下の通りです。

アプリを開く

最初に、開発者向けポータルの画面左側のメニューから、自分のプロジェクト・アプリを開きます。

ユーザー認証設定の「セットアップ」をクリック

ユーザー認証設定が「Not set up」となっていることを確認し、「Set up」(設定)のバナーをクリックします。

アプリのパーミッションを「Read and write」に設定

アプリのパーミッションは、デフォルトでは「Read」のみ、となっているはずです。
そのままでは、ツイートの投稿(Write)が出来ません。
そこで、パーミッションを「Read and write」に設定します。

アプリのタイプを選択

自分のTwitterアカウントから、APIを経由してツイートを投稿してみる、というのが趣旨の場合、今回は、「Web App, Automated App or Bot」を選択しておけばOKです。

コールバックURL等の設定

TwitterAPIを経由したツイート投稿試験が目的の場合、ひとまずは、いずれも、「https://twitter.com/」を指定しておけばOKです。

パーミッションの変更の確認

パーミッション内容の変更を確認するポップアップが表示されるので、「Yes」をクリックします。

ユーザー認証設定完了

ユーザー認証設定の横に、緑色のチェック・アイコンが表示されれば、認証設定は完了です。

APIキー等を取得

ユーザー認証設定が済んだら、次は、APIキー等の取得を進めます。

「プロジェクト・アプリ」を選択

Twitterの開発者向けポータルの画面左側のメニューから、「Projects and Apps」を選択します。

「キーとトークン」まで移動

「Keys and tokens」まで移動します

コンシューマーキーの「再生成」ボタンをクリック

「コンシューマーキー」の、「APIキーとシークレット」の箇所の右側の、「再生成(Regenerate)」バナーをクリックします。

APIキーの再生成に関する注意事項の確認

APIキーを再生成することに伴う注意事項が表示されるので、内容を確認し、「はい、再生成します」のバナーをクリックします。

APIキーとシークレットキーのコピー

表示されるAPIキー、及びシークレットキーを、安全・確実な方法で保管・保存します。

アクセストークン&シークレットも生成

同じ要領で、アクセストークン、及び、アクセストークンシークレットも生成します。

Python用のライブラリ「tweepy」をインストール

次に、TwitterAPIの操作を簡易にするために、「tweepy」というPython向けのライブラリをインストールします。

tweepyライブラリがインストール済みかどうか確認

まずは、tweepyライブラリが既にインストールされているか、以下のコマンドで確認します。

pip list

「tweepy」というライブラリが表示されなければ、以下の手順に進みます。

tweepyライブラリの取得

tweepyライブラリが未インストールであることが分かったら、以下のコマンドで、ライブラリのインストールを行います。

pip install tweepy

その後、改めて、「pip list」コマンドによる検索を行い、「tweepy」ライブラリが無事にインストールされたことを確認します。

Pythonコードを書き、APIを叩く

諸々の準備が整ったら、いよいよ、TwitterAPIにリクエストを送信するためのPythonスクリプトを作成・記述していきます。

TwitterAPIテスト用のPythonスクリプトを作成

今回は、「Twitter-API-post-test」というPythonスクリプトファイルを作成しています。

コードを書く

以下のコードを、作成したPythonスクリプトにコピペしてください。
また、

  • コンシューマーキー
  • コンシューマー・シークレット
  • アクセストークン
  • アクセストークン・シークレット

の箇所に関しては、前段の要領で取得したAPIキー等の情報をペーストしてください。

import tweepy

# 認証情報
consumer_key = 'あなたのconsumer_key'
consumer_secret = 'あなたのconsumer_secret'
access_token = 'あなたのaccess_token'
access_token_secret = 'あなたのaccess_token_secret'

# tweepy.Client オブジェクトの初期化
client = tweepy.Client(
    consumer_key=consumer_key,
    consumer_secret=consumer_secret,
    access_token=access_token,
    access_token_secret=access_token_secret
)

# テストツイートを投稿
tweet_text = "これはテストツイートです。"
response = client.create_tweet(text=tweet_text)

# レスポンスからツイートIDを取得して表示(成功した場合)
if response.data:
    print(f"ツイートが成功しました。ツイートID: {response.data['id']}")
else:
    print("ツイートに失敗しました。")

スクリプトを実行

VScode等の実行ボタン、もしくは、ターミナルから、Pythonスクリプト名を入力・指定し、スクリプトを実行します。

その後、自分のTwitterアカウントのツイート履歴に、Pythonコード内にて指定した文言のツイートが表示されれば、テストは成功です。

X(旧:Twitter)のAPIに関する「よくある質問」

ここでは、X(旧:Twitter)のAPIに関して想定される「よくある質問」を、質疑応答の形式で、確認して参ります。

X(旧:Twitter)のAPIは有料化された、と聞いたのですが、無料でも使えるのですか?

X(旧:Twitter)のAPIには、

  • フリープラン(≒無料プラン)
  • ベーシックプラン(ホビー向け、とされています)
  • プロプラン

が提供されています。
フリープランの場合、他のプランと比較し、機能は大幅に制限されますが、費用はかからず、無料で利用することが出来ます。

X(旧:Twitter)のAPIを利用するには、審査を通過する必要がありますか?

以前は、X(旧:Twitter)のAPIを利用するためには、Twitter社側の審査を通過する必要がありました。
その後、API有料化(並びに、フリープランの創設)等の紆余曲折を経て、フリープランへの新規アカウント登録(≒開発者アカウントへのサインアップ)については、さほど時間のかかる審査はなく、基本的には即時に開発者アカウント登録が可能となっている模様です。
※ただし、API利用(及び、開発者アカウントのサインアップ)の理由の入力内容によっては、異なる対応となる可能性があります。

無料プラン(フリープラン)では、何が出来るのですか?

ベーシックプランやプロプランと比較し、フリープランの機能には大きな制限が課されています。
基本的に、フリープランで活用できるAPI機能としては、以下の2点です。

(自分の)ツイートの管理
ツイートの投稿や、削除を行うことが出来ます。
なお、1日あたりのリクエスト数には、上限が設定されています。
ユーザー情報の参照
Twitterユーザーのフォロワー数や固定ツイート等の情報を取得できます。

一見すると、寂しい限りですが、自分のTwitterアカウントからのツイートについては、APIを用いて自動化することが出来ます。
Python等のプログラミング言語を用いれば、他のAPIと組み合わせたツイートの自動化も可能です。
※詳しい開発については、本記事の更新、もしくは、他記事の公開にて、情報をお伝えして参ります。

アクセルレベルの認証エラーが出て、API経由のツイート投稿が出来ないのですが…

以下のようなエラー文が表示されていますか?

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”,

tweepyライブラリを用いている場合、ネット上の情報によっては、認証部分のコードを、

 auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth)

上記のように指定してるケースがありますが、TwitterAPIのアップデートにより、上記の認証形式ではエラーが生じることがあります。
その場合、コードを以下のように変更する必要があります。

client = tweepy.Client(
        consumer_key=consumer_key,
        consumer_secret=consumer_secret,
        access_token=access_token,
        access_token_secret=access_token_secret
    )

上掲のように「tweepy.Client」を用いた認証に切り替えることで、認証エラーをクリアできるケースがあります。

Author Info

仕事・働き方・副業情報検証チーム
fill.mediaは、国内の融資型クラウドファンディング(ソーシャルレンディング)や、不動産クラウドファンディング、ロボアドバイザー、インデックス投資業界等の最新情報を提供する、投資・金融情報総合メディア。
その他、昨今、主に若年投資家の間で大きな関心を集めつつあるFIRE(Financial Independence, Retire Early)に関する最新情報を専門的に扱う、FIRE(早期リタイア)専門の検証チームや、不労所得に関する検証グループ、その他、不動産投資全般について検証を行うチーム等があります。

仕事・働き方情報検証チームでは、昨今の働き方改革の中で注目が高まりつつあるフリーランスやノマドワーカー、転職、在宅業務等に関する話題を検証し、掘り下げた分析・情報を提供して参ります。

メディア掲載歴(一部・順不同)
・朝日新聞デジタル&m
・財経新聞
・SankeiBiz
・RBBTODAY
・楽天Infoseekニュース
・excite.ニュース
・BIGLOBEニュース
・@nifty ビジネス
・Mapionニュース
・NewsPicks
・ビズハック
・MONEY ZONE
・Resemom
・SANSPO.COM
・Trend Times
・zakzak
・とれまがニュース
・徳島新聞