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()
これだけ。
参考: 生成AIに聞く
PythonコードからAPIを使用して自動投稿する方法を、生成AI(ChatGPT)に聞いて、初めて「自動投稿が出来る!」…と今更分かりました。