X(Twitter)への自動投稿をPythonで実装する方法を解説します。Tweepyを活用し、XのDeveloper APIを利用して投稿を自動化する手順を具体的に説明します。
Contents
1. 準備段階
X(Twitter)のAPIを利用するには、開発者アカウントの登録が必要です。以下のステップで設定を行います。
自動投稿には、X API(Twitter API)キーなどが必要になります。これを入手するための準備をしていきます。
1.1 X(Twitter)アカウント作成
既存のXアカウントを利用する場合でもOKですが、運用目的によっては専用アカウントを作成すると管理しやすくなります。
1.2 Developer Portal 登録
Xの開発者向けポータル(https://developer.x.com/en/portal/petition/essential/basic-info)にアクセスし、開発者アカウントを作成します。
無料で登録可能(ただし、利用可能なAPIの範囲はプランによって異なる)

Free Acountでも自動投稿(投稿数制限有り)はできますので、”Sign up for Free Account”を選びます。
利用目的を明確に記載(例:「ボットによる自動投稿を行うため」)

“Describe all of your use cases of Twitter’s data and API”にはX APIを何に使うかを記入します。250文字以上入力する必要があります。
下記のポイントを意識し、Google翻訳などを使って文章を作ってください。
- 目的を詳細に説明
- 利用方法を具体的に記述
- フォロワーへの価値を強調
- 誠実で透明性のある説明
3つのチェックを入れると”Submit”を押すことができます。
1.3 プロジェクト内のAPP設定(APP名の設定)
開発者ポータル内で、自分に割り当てられたプロジェクト内のAPP名を設定します。
ただし、このAPP名設定は必須ではありません。

サインインするとダッシュボードが表示されます。
新しく割り当てられたプロジェクトが表示されるので、PROJECT APPのApp settingsを押して設定画面に移ります。

App nameに名前を入れます。何をするか分かるような名前にします。

入力例:
- 個人プロジェクト名
- “Daily Tweet Bot”
- “Personal Social Media Automation”
- 開発者名
- “Your Name’s Automation Project”
- アプリ種別:「Web App, Automated App, or Bot」を選択
- Callback URL:OAuth認証を使う場合のみ必要。テスト用として
http://localhost
などを指定可能。
1.4 API 権限設定
APP名を設定するとこの画面に戻ります。
APP名を変更しない場合は、左のメニューの”Projects&Apps”からAPPをクリックしてください。
(この例の場合、RME_POST_BOT)

“Set up”を押すとUser authentication settingsの画面に移動します。

App permissions
XのAPIには複数のアクセスレベルが存在します。投稿を行う場合、最低でも Read & Write権限が必要です。
- Read(読み取り)
- Read & Write(投稿可能)
- Read, Write, and Direct Messages(DM操作も可能)
Type of App
2番目の「Web App, Automated App or Bot」を選択します。
理由:
- 自動投稿スクリプト(Bot)を作成するため
- サーバーサイドで動作するPythonスクリプト
- 機密性の高いクライアント(Confidential client)として扱われる
選択のポイント:
- 自動化されたスクリプト
- サーバーで実行
- APIへの定期的なアクセス
注意点:
- 商業目的ではない個人プロジェクト
- スパム行為を避ける
- 倫理的な利用

Callback URI / Redirect URL
後で変更可能です。
実際には使用しないようですが、必須項目を埋めるためになります。
対応例:
- ローカル開発用URL
例:http://localhost:8000/callback
- GitHub Pages等のURL
例:https://yourusername.github.io/callback
- 簡易的な対応
https://example.com/callback
http://localhost:8888
注意点:
- 空白は不可
- 有効なURL形式が必要
Website URL
あなたのプロジェクトや個人サイトのURLを入力します。
選択肢:
- 個人的なプロジェクトの場合
- GitHub Pages
例:https://yourusername.github.io/project-name
- 個人ブログやポートフォリオ
- 個人サイト
例:https://yourname.com
- GitHubリポジトリ
例:https://github.com/yourusername/twitter-bot
- 簡易的な対応
https://example.com
注意点:
- 実在するURLが望ましい
- 架空のURLは避ける
- 後で変更可能
推奨:
- 可能であれば実際のプロジェクトページ
- GitHubリポジトリのURL
- 個人サイトやブログのURL
以上、2つのRequiredを埋めればSaveできます。

Tweepyには使いませんが、Client IDとClient SecretはコピーしてAPIキーなどと一緒に保管しておいてください。
1.5 認証情報の取得
以下の認証情報を取得していきます。無くさないように保管しておいてください。
- API Key(クライアント認証用)
- API Key Secret(クライアント認証用の秘密鍵)
- Access Token(ユーザー認証用)
- Access Token Secret(ユーザー認証用の秘密鍵)
“Keys and tokens”タグを押して画面を切り替えます。

API KeyとAPI Key Secretの再発行

“API Key and Secret”の”Regenerate”を押し、再発行します。(既に割り付けられているようですが、確認できないので再発行します。)
確認画面が出るので”Yes,regenerate”を押します。

“API Key”と”API Key Secret”は必ずコピーしてメモ帳などにペーストし保管しておいてください。
Access TokenとAccess Token Secretの発行

“Access Token and Secret”の”Generate”を押し発行します。

“API Key”と”API Key Secret”と一緒に、”Access Token”と”Access Token Secret”は必ずコピーしてメモ帳などにペーストし保管しておいてください。
これらの情報は、環境変数や設定ファイルに保存し、絶対に公開しないように注意してください。
2. Python 環境の準備
Pythonを使用してX(Twitter)APIを操作するために、Tweepyライブラリをインストールします。
X APIはV2になります。
2.1 Tweepyのインストール
以下のコマンドでTweepyをインストールします。
pip install tweepy
2.2 API認証設定
Pythonコード内でAPIキーを使用して認証を行います。
import tweepy
client = tweepy.Client(
consumer_key='YOUR_API_KEY',
consumer_secret='YOUR_API_KEY_SECRET',
access_token='YOUR_ACCESS_TOKEN',
access_token_secret='YOUR_ACCESS_TOKEN_SECRET'
)
上で保管しておいた、
- API Key(クライアント認証用)
- API Key Secret(クライアント認証用の秘密鍵)
- Access Token(ユーザー認証用)
- Access Token Secret(ユーザー認証用の秘密鍵)
をconsumer_keyなどの変数の値にペーストしていきます。
これで準備完了です。
3. コード実装
3.1 基本的な投稿
以下のコードで「Hello, World!」をX(Twitter)に投稿します。(V2を使っています。)
import tweepy
client = tweepy.Client(
consumer_key='YOUR_API_KEY',
consumer_secret='YOUR_API_KEY_SECRET',
access_token='YOUR_ACCESS_TOKEN',
access_token_secret='YOUR_ACCESS_TOKEN_SECRET'
)
#投稿
client.create_tweet(text='Hello, World!')
実行結果例

3.2 画像付き投稿
画像を投稿する場合、画像ファイルをアップロードしてポストに添付できます。
メディアIDを使用します。
import tweepy
client = tweepy.Client(
consumer_key='YOUR_API_KEY',
consumer_secret='YOUR_API_KEY_SECRET',
access_token='YOUR_ACCESS_TOKEN',
access_token_secret='YOUR_ACCESS_TOKEN_SECRET'
)
# 画像アップロード
auth = tweepy.OAuthHandler(client.consumer_key, client.consumer_secret)
auth.set_access_token(client.access_token, client.access_token_secret)
api = tweepy.API(auth)
# 画像ファイルをアップロード
media = api.media_upload("path/to/image.jpg")
# ツイート(画像付き)
client.create_tweet(
text="画像付きツイート",
media_ids=[media.media_id]
)
実行結果例

3.3 複数画像付き投稿
複数の画像を添付してのポストです。
import tweepy
client = tweepy.Client(
consumer_key='y1mnOEEGtkoyxfy0kKOSVJBkI',
consumer_secret='CoctYhFqsmWnmfnSo3DHAQqVlngtWQXqOs3au9U3BhPyTVbu73',
access_token='1804332247971246080-0jo6iRnTah9nY0Dmcrf1yt0Zd4eE49',
access_token_secret='dSLpSi4DWkNTY7Ir21dhRDcC6iOEpfByqelYSok14QSap'
)
#client.create_tweet(text='Hello, World!')
# 画像アップロード
auth = tweepy.OAuthHandler(client.consumer_key, client.consumer_secret)
auth.set_access_token(client.access_token, client.access_token_secret)
api = tweepy.API(auth)
media_ids = [
api.media_upload(r"C:\Users\Yo1\Pictures\ビジネス用\LOGO.png").media_id,
api.media_upload(r"C:\Users\Yo1\Pictures\ビジネス用\Tweepy.png").media_id
]
client.create_tweet(
text="複数画像ツイート",
media_ids=media_ids
)
実行結果例

4. 注意点
4.1 認証情報の管理
認証情報(API Key, Access Tokenなど)は絶対に公開しないようにしましょう。
- GitHubなどの公開リポジトリにアップロードしない
4.2 スパム行為の禁止
X(Twitter)のポリシーに違反しないよう、過度な自動投稿やスパム行為は禁止されています。
- 短時間での大量投稿を避ける(API制限を超えるとBANの可能性あり)
- 規約に違反しない用途で利用する
- 定期投稿を行う場合は、適切な間隔を設ける
投稿数の制限はAPIプランによるので、Xの公式ページで確認してください。
4.3 倫理的な利用
- 他人のコンテンツを無断で投稿しない
- 偽情報や誤解を招く投稿は避ける
- 著作権に注意する
5. まとめ
Tweepyを利用することで、比較的簡単にX(Twitter)へ自動投稿を実装できます。
- 開発者ポータルの登録 → APIキー取得 → Tweepyを使った投稿コード実装 という流れで、スムーズに自動投稿環境を構築可能です。
- 画像投稿や定期投稿など、応用範囲も広いものです。
- ただし、APIの利用規約を守り、適切な方法で運用することが重要です。
コメント