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

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)

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

```python
# 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)に聞いて、初めて「自動投稿が出来る！」…と今更分かりました。

https://chatgpt.com/share/67e14095-217c-800d-91b9-e77c8ac88123