1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonコードを実行してTwitter(X)に投稿する(無料アカウントを使用)、2025年3月時点で成功確認

Last updated at Posted at 2025-04-18

TwitterからXに変わり、APIを使用する多くのアカウントが凍結されて、APIが使えなくなってしまった…と思っていましたが、PythonコードからAPIを使用して自動投稿が出来る!…と今更分かりました。実際に動作したコードを記載します。

結果

Pythonコードを実行してTwitter(X)に投稿、2025年APIで確認OK。

①始めに認証情報(必要なAPIキー・トークン)を取得

スクリプトで自動投稿を行うには、
まず始めに、下記サイトから認証情報(必要なAPIキー・トークン)を取得します。
https://developer.x.com/en/portal/dashboard

Twitter Developer Portal にログインします。
 ↓
認証設定画面を表示
作成したアプリの詳細ページに入り、左側またはページ下部にある「User authentication settings」セクションを探し、「Set up」ボタンをクリック。
 ↓
各項目を設定

  • App permissions(アプリの権限)
    通常は「Read and write」を選択。
    ※ツイートの投稿や削除などを行う場合にはこの設定が必要。
  • Type of App(アプリの種類)
    「Web App, Automated App or Bot」を選択。

画面右下の「Save」ボタンをクリックして設定を保存。
 ↓
「Keys and tokens」タブを表示して
アプリの詳細ページ内にある「Keys and tokens」タブをクリック。
 ↓
下記の認証情報を取得する

ここで取得するAPIキー・トークン情報は以下の通り。

  • API Key(Consumer API Key)
  • API Key Secret(Consumer API Secret)
  • Access Token および Access Token Secret

取得する認証情報の例

ここで取得された認証情報の例: ※下記のAPIキー・トークンはサンプル(無効なもの)。

API Key(Consumer API Key)
g267JDyR4Y2eQBlTzmoesqwov ←25字

API Key Secret(Consumer API Secret)
vWRaj99OfP4pwag15A99dlLGt7UUfQCFU0GeOP5kcYavmfFfOD ←50字

Access Token
2755679135552414320-EbRoCP7pqVoIuiiAtVPyubD375Xznd ←19+30字

Access Token Secret
4gy9vWDSGvBUbH9erAZbY85060hXYyZiRpEavZhGsUYfc ←45字

②tweepyライブラリをインストール

必要なライブラリを下記でインストール。

pip install tweepy

③単純な投稿のみを行うテストコード (動作確認OK)

自動投稿が成功したコード:

# Twitter(X)にPythonコードから投稿、2025年APIでの確認

# assume: pip install tweepy


# 結果: 投稿に成功、確認25/03/11

# 下記サイトから認証情報を取得: 
# https://developer.x.com/en/portal/dashboard
# ↓
# API Key(Consumer API Key)
# g267JDyR4Y2eQBlTzmoesq... ←25字
# API Key Secret(Consumer API Secret)
# vWRaj99OfP4pwag15A99dlLGt7UUfQCFU0GeOP5kcYavmfF... ←50字
# Access Token
# 2755679135552414320-EbRoCP7pqVoIuiiAtVPyubD375X... ←19+30字
# Access Token Secret
# 4gy9vWDSGvBUbH9erAZbY85060hXYyZiRpEavZhGsU... ←45字

import os
import tweepy

# sec: config

def main():
    
    # 環境変数から認証情報を取得
    CONSUMER_KEY = "g267JDyR4Y2eQBlTzmoesq..."
    CONSUMER_SECRET = "vWRaj99OfP4pwag15A99dlLGt7UUfQCFU0GeOP5kcYavmfF..."
    ACCESS_TOKEN = "2755679135552414320-EbRoCP7pqVoIuiiAtVPyubD375X..."
    ACCESS_TOKEN_SECRET = "4gy9vWDSGvBUbH9erAZbY85060hXYyZiRpEavZhGsU..."

    # 認証情報が全て取得できているか確認
    if not all([CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET]):
        print("認証情報が不足しています。環境変数を確認してください。")
        exit(1)

    # TweepyのClientオブジェクトを作成
    try:
        client = tweepy.Client(
            consumer_key=CONSUMER_KEY,
            consumer_secret=CONSUMER_SECRET,
            access_token=ACCESS_TOKEN,
            access_token_secret=ACCESS_TOKEN_SECRET
        )
        print("Twitter APIクライアントの作成に成功しました。")
    except Exception as e:
        print(f"Twitter APIクライアントの作成に失敗しました: {e}")
        exit(1)

    # ツイートの投稿
    try:
        response = client.create_tweet(text="test post 250311")
        print(f"ツイートが投稿されました: https://twitter.com/user/status/{response.data['id']}")
    except Exception as e:
        print(f"ツイートの投稿に失敗しました: {e}")


# sec: entry

if __name__ == "__main__": main()

これだけ。

参考: 無料アカウントでできること

Tweepyは、Twitter(X) APIにアクセスするためのPythonライブラリで、使用できる機能はTwitterの「開発者アカウントのプラン」によって異なります。

無料アカウントでできること

  • 投稿(Tweet)関連
    • 1か月あたり1,500ツイートまでの投稿が可能(自アカウントのみ)。
    • ツイート投稿や削除が可能。
  • データ取得関連
    • 自分のツイート・プロフィール情報の取得は可能。
    • ただし、検索(Search)APIは使用不可(無料ではツイート検索できません)。
    • ツイートやユーザーの取得は主に自アカウントに関する情報に限定されます。
  • 使えない機能(無料プランでは不可)
    • 検索系API(Search Tweets, Full Archive Search など)
    • ストリーミングAPI(リアルタイム取得)
    • 他人のフォロワー・フォロー関係を調べる機能
    • エンゲージメント取得(リツイート数やいいね数の分析)
    • メディアアップロード(画像・動画付きツイート)
    • 高速なレート制限(エンタープライズ向けの大量アクセス)

参考: 生成AIに聞く

PythonコードからAPIを使用して自動投稿する方法を、生成AI(ChatGPT)に聞いて、初めて「自動投稿が出来る!」…と今更分かりました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?