Clicky

PythonでX自動投稿する方法|CSVに用意した投稿文を毎日1件ずつ投稿する手順

Python(パイソン)
Python(パイソン)
この記事は約14分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める

Xに毎日投稿したいと思っていても、手動で続けるのは意外と大変です。投稿する内容を考えるだけでなく、決まった時間に投稿する必要があるため、忙しい日には投稿を忘れてしまうこともあります。

そこで便利なのが、Pythonを使ったX自動投稿です。今回の方法では、あらかじめCSVファイルに投稿文を用意しておき、Pythonのプログラムが投稿予定時刻を確認して、Xへ自動で投稿します。

この記事では、初めてこの仕組みを見る人でも分かるように、ファイルの役割、初期設定、実行方法、投稿結果の確認方法まで順番に解説します。

今回作るX自動投稿の仕組み

今回の仕組みは、ローカルPC上で動くX自動投稿ツールです。

ローカルPCとは、自分のパソコンのことです。

つまり、外部の管理画面を使うのではなく、自分のPC上でPythonを動かして、Xへ投稿します。

全体の流れは次の通りです。

  1. posts.csvに投稿文を用意する
  2. .envにX APIキーを設定する
  3. Pythonの実行環境を作る
  4. 必要なライブラリをインストールする
  5. テスト投稿を行う
  6. scheduler.pyを起動する
  7. 投稿予定時刻になるとXへ自動投稿される
  8. 投稿結果がposts.csvとログに記録される

簡単に言うと、posts.csvが「投稿リスト」、Pythonが「投稿を実行する係」です。

現在の状態

今回の環境では、すでに次の準備が完了しています。

項目状態
投稿データposts.csvに30日分のWordPress技術Tipsを入力済み
投稿内容初心者向けの内容に調整済み
投稿予定明日の午前8時から1日1件ずつ投稿される設定
実行方法Pythonで投稿処理を実行する構成
ログlogs/post.logに実行結果を記録する構成

つまり、あとはAPIキーを設定し、Python環境を整えて、プログラムを実行すれば自動投稿を開始できます。

使うファイルの役割

まず、今回の自動投稿ツールで使うファイルの役割を理解しておきましょう。

ファイル名役割
posts.csv投稿文、投稿予定日時、投稿状態を管理するファイル
.envX APIキーを保存するファイル
requirements.txt必要なPythonライブラリの一覧
post_to_x.pyXへ1件投稿するためのプログラム
scheduler.py投稿時間を定期的に確認するプログラム
logs/post.log投稿結果やエラー内容を記録するログファイル

最初はすべてを理解しようとしなくても大丈夫です。

まずは、次の3つだけ覚えておけば十分です。

覚えるもの意味
posts.csv投稿文を入れる場所
.envAPIキーを入れる場所
scheduler.py自動投稿を開始するプログラム

posts.csvとは

posts.csvは、投稿文を管理するためのファイルです。

CSVとは、表形式のデータを保存するためのファイル形式です。

ExcelやGoogleスプレッドシートでも開けます。

posts.csvには、次のような情報が入っています。

項目意味
投稿文Xに投稿する文章
scheduled_at投稿予定日時
status投稿状態
tweet_id投稿後に記録される投稿ID

たとえば、statusがreadyになっている投稿は、まだ投稿されていない状態です。

ready

投稿が成功すると、statusはpostedに変わります。

posted

つまり、readyは「投稿待ち」、postedは「投稿済み」という意味です。

.envとは

.envは、X APIキーを保存するためのファイルです。

Xへ自動投稿するには、X Developer Portalで取得したAPIキーが必要です。

そのAPIキーをプログラム内に直接書くのではなく、.envファイルに保存します。

.envファイルには、次の4つの情報を入力します。

API_KEY=ここにAPI Keyを入力
API_KEY_SECRET=ここにAPI Key Secretを入力
ACCESS_TOKEN=ここにAccess Tokenを入力
ACCESS_TOKEN_SECRET=ここにAccess Token Secretを入力

APIキーは、Xアカウントを操作するための重要な情報です。

他人に見せないように注意してください。

ブログ記事、SNS、公開フォルダなどに貼り付けてはいけません。

X APIキーを設定する手順

最初に行う作業は、X APIキーの設定です。

手順は次の通りです。

  1. X Developer Portalを開く
  2. 作成済みのアプリを確認する
  3. API Keyを取得する
  4. API Key Secretを取得する
  5. Access Tokenを取得する
  6. Access Token Secretを取得する
  7. x_auto_post/.envを開く
  8. 4つのキーを貼り付けて保存する

設定するファイルは、次の場所にあります。

x_auto_post/.env

.envファイルを開いたら、取得したキーをそれぞれ貼り付けます。

例です。

API_KEY=xxxxxxxxxxxxxxxx
API_KEY_SECRET=xxxxxxxxxxxxxxxx
ACCESS_TOKEN=xxxxxxxxxxxxxxxx
ACCESS_TOKEN_SECRET=xxxxxxxxxxxxxxxx

このとき、余計なスペースや引用符を入れないように注意してください。

PowerShellを開く

次に、WindowsのPowerShellを開きます。

PowerShellとは、Windowsでコマンドを実行するための画面です。

普段マウスで操作している作業を、文字の命令で実行する場所だと考えると分かりやすいです。

開き方は次の通りです。

  1. Windowsのスタートメニューを開く
  2. 「PowerShell」と検索する
  3. Windows PowerShellを起動する

PowerShellが開いたら、次の作業に進みます。

作業フォルダに移動する

PowerShellを開いたら、自動投稿ツールが置いてあるフォルダに移動します。

次のコマンドを実行します。

cd "g:\マイドライブ\SNS投稿\SNS投稿自動化ツール\X\x_auto_post"

このコマンドは、「指定したフォルダへ移動する」という意味です。

cdは、change directoryの略です。

もし自動投稿ツールを別の場所に保存している場合は、自分のフォルダの場所に合わせて変更してください。

Pythonの仮想環境を作成する

次に、Pythonの仮想環境を作ります。

仮想環境とは、この自動投稿ツール専用のPython環境です。

他のPythonプログラムと設定が混ざらないようにするために使います。

PowerShellで次のコマンドを実行します。

python -m venv venv

実行すると、フォルダ内にvenvというフォルダが作られます。

venv

このvenvの中に、このツール専用のPython環境が入ります。

仮想環境を有効化する

仮想環境を作ったら、次に有効化します。

PowerShellで次のコマンドを実行します。

.\venv\Scripts\Activate.ps1

成功すると、PowerShellの行頭に次のような表示が出ます。

(venv)

この表示が出ていれば、仮想環境が有効になっています。

今後、このツールを実行するときは、基本的にこの仮想環境を有効化してから実行します。

仮想環境の有効化でエラーが出た場合

PowerShellで仮想環境を有効化しようとしたときに、次のようなエラーが出る場合があります。

このシステムではスクリプトの実行が無効になっているため、ファイルを読み込むことができません。

この場合は、PowerShellの実行ポリシーが原因です。

次のコマンドを実行してください。

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

確認が表示されたら、内容を確認して進めます。

その後、もう一度仮想環境を有効化します。

.\venv\Scripts\Activate.ps1

行頭に(venv)が表示されれば成功です。

必要なライブラリをインストールする

仮想環境を有効化したら、必要なPythonライブラリをインストールします。

次のコマンドを実行します。

pip install -r requirements.txt

requirements.txtには、この自動投稿ツールを動かすために必要なライブラリが書かれています。

このコマンドを実行すると、必要なライブラリがまとめてインストールされます。

ここまでで、Pythonを動かす準備は完了です。

テスト投稿の準備をする

本番運用を始める前に、必ずテスト投稿を行いましょう。

テスト投稿では、posts.csvの1件目を使って、実際にXへ投稿できるか確認します。

posts.csvを開き、1行目のscheduled_atを現在より前の時刻に変更します。

例です。

2024-01-01 00:00:00

そして、statusをreadyにします。

ready

これで、「投稿予定時刻を過ぎていて、まだ投稿されていないデータ」として認識されます。

テスト投稿を実行する

テスト投稿を行うには、PowerShellで次のコマンドを実行します。

python post_to_x.py

このコマンドは、posts.csvの中から投稿対象を探し、Xへ1件投稿するためのものです。

成功すると、実際にXへ投稿されます。

その後、posts.csvのstatusがpostedに変わります。

tweet_idにも投稿IDが入ります。

テスト投稿が成功すれば、APIキーや投稿処理は正しく設定されています。

本番の自動投稿を開始する

テスト投稿が成功したら、本番の自動投稿を開始します。

PowerShellで次のコマンドを実行します。

python scheduler.py

このコマンドを実行すると、スケジューラーが起動します。

スケジューラーとは、決まった時間になったかどうかを確認するプログラムです。

今回の設定では、プログラムが5分ごとにposts.csvを確認します。

そして、次の条件に合う投稿があれば、自動でXへ投稿します。

  1. scheduled_atの時刻を過ぎている
  2. statusがreadyになっている
  3. まだtweet_idが入っていない

投稿が成功すると、statusがpostedに変わります。

scheduler.pyを起動している間の注意点

scheduler.pyは、PowerShellで起動している間だけ動きます。

つまり、PowerShellを閉じると止まります。

PCをシャットダウンしても止まります。

スリープ状態でも止まる場合があります。

状態自動投稿されるか
PCの電源が入っている投稿される
PowerShellが開いている投稿される
scheduler.pyが起動している投稿される
PowerShellを閉じた投稿されない
PCをシャットダウンした投稿されない
PCがスリープ状態投稿されない場合がある

まずは、朝8時の投稿時刻までPowerShellを開いたままにして、正常に投稿されるか確認しましょう。

自動投稿を止める方法

自動投稿を止めたい場合は、PowerShell上で次のキーを押します。

Ctrl + C

これでscheduler.pyが停止します。

一時的に止めたい場合も、この方法で問題ありません。

再開したい場合は、もう一度次のコマンドを実行します。

python scheduler.py

投稿結果を確認する方法

投稿結果は、主に2か所で確認できます。

1つ目はposts.csvです。

投稿が成功すると、statusがpostedに変わります。

tweet_idにも投稿IDが入ります。

2つ目はログファイルです。

ログファイルは次の場所にあります。

logs/post.log

post.logには、投稿が成功したか、エラーが出たかが記録されます。

もし投稿されない場合やエラーが出た場合は、まずこのログファイルを確認してください。

投稿できないときの確認ポイント

投稿できない場合は、次の順番で確認してください。

確認項目内容
.envAPIキーが正しく入力されているか
Xアプリの権限Read and Writeになっているか
Access Token権限変更後に再発行しているか
posts.csvstatusがreadyになっているか
scheduled_at現在より前、または投稿予定時刻を過ぎているか
Python環境仮想環境が有効になっているか
ライブラリpip install -r requirements.txtを実行したか
ログlogs/post.logにエラーが記録されていないか

よくある原因は、APIキーの入力ミス、Xアプリの権限不足、statusの設定ミスです。

特に、Xアプリの権限がReadのみになっていると投稿できません。

必ずRead and Writeに設定してください。

投稿文を追加する方法

新しい投稿文を追加したい場合は、posts.csvに新しい行を追加します。

追加した行のstatusはreadyにします。

ready

scheduled_atには、投稿したい日時を入力します。

例です。

2026-05-07 08:00:00

これで、その日時を過ぎたタイミングでscheduler.pyが自動投稿します。

投稿済みの行を書き換えるより、新しい行を追加する方が安全です。

投稿文を修正する方法

まだ投稿されていない投稿文を修正したい場合は、posts.csvを開いて該当する行を書き換えます。

修正してよいのは、statusがreadyの行です。

ready

すでにpostedになっている行は投稿済みなので、基本的には変更しない方が分かりやすいです。

修正するときは、次の点を確認してください。

  1. 誤字脱字がないか
  2. 内容が古くないか
  3. 投稿文が長すぎないか
  4. scheduled_atが正しいか
  5. statusがreadyになっているか

30日分の投稿が終わったらどうするか

30日分の投稿が終わると、posts.csvのstatusがすべてpostedになります。

この状態では、投稿待ちのデータがないため、新しい投稿は行われません。

引き続き投稿したい場合は、新しい投稿文をposts.csvに追加します。

追加するときは、statusをreadyにします。

ready

scheduled_atには、次に投稿したい日時を入れます。

この作業を行えば、同じ仕組みで自動投稿を続けられます。

2回目以降に起動する手順

初回の環境構築が終わっていれば、2回目以降は少ない手順で起動できます。

PowerShellを開き、次のコマンドを順番に実行します。

cd "g:\マイドライブ\SNS投稿\SNS投稿自動化ツール\X\x_auto_post"
.\venv\Scripts\Activate.ps1
python scheduler.py

これで自動投稿が再開されます。

毎回、python -m venv venvやpip install -r requirements.txtを実行する必要はありません。

それらは初回だけで大丈夫です。

初回に実行するコマンドまとめ

初回に実行するコマンドは、次の通りです。

cd "g:\マイドライブ\SNS投稿\SNS投稿自動化ツール\X\x_auto_post"
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt

テスト投稿をするときは、次のコマンドです。

python post_to_x.py

本番の自動投稿を開始するときは、次のコマンドです。

python scheduler.py

毎日の運用で確認すること

自動投稿が動き始めたら、毎日細かく操作する必要はありません。

ただし、最初の数日は次の項目を確認してください。

確認するもの確認内容
X実際に投稿されているか
posts.csvstatusがpostedに変わっているか
logs/post.logエラーが出ていないか
PowerShellscheduler.pyが起動したままか

数日間問題なく動けば、基本的な設定は成功です。

週に1回確認すること

自動投稿は便利ですが、完全に放置するのはおすすめしません。

週に1回は、次の内容を確認しましょう。

確認項目内容
投稿残数readyの投稿が残っているか
投稿内容古い情報が含まれていないか
エラーlogs/post.logに失敗がないか
投稿結果反応のよいテーマは何か
追加予定新しい投稿文を準備する必要があるか

自動化は、投稿を楽に続けるための仕組みです。

投稿後の反応を見ながら、内容を少しずつ改善していくことが大切です。

PC起動時に自動で動かしたい場合

毎回PowerShellを開いてscheduler.pyを実行するのが面倒な場合は、Windowsのタスクスケジューラーを使う方法があります。

タスクスケジューラーを使うと、PCを起動したときに自動でscheduler.pyを実行できます。

ただし、最初からタスクスケジューラーに登録するより、まずは手動で数日間動かして確認するのがおすすめです。

手動で問題なく動くことを確認してから、自動起動の設定に進むと安心です。

この仕組みのメリット

PythonとCSVを使ったX自動投稿には、次のメリットがあります。

メリット内容
自分のPCで管理できる投稿データを手元で管理できる
CSVで編集しやすいExcelやスプレッドシートで修正できる
投稿状況が分かりやすいstatusで投稿済みか確認できる
エラーを記録できるlogs/post.logで原因を確認できる
投稿文を追加しやすいposts.csvに行を追加するだけでよい

特に、投稿文をCSVで管理できる点は大きなメリットです。

難しい管理画面を使わなくても、表形式で投稿文や予定時刻を確認できます。

注意点

この仕組みを使うときは、次の点に注意してください。

注意点内容
APIキーを公開しない不正利用される可能性があります
PCを閉じると止まるローカル実行のためPCが必要です
PowerShellを閉じないscheduler.pyが停止します
投稿内容を確認する古い情報や誤字に注意します
投稿頻度を上げすぎないアカウント運用上、自然な頻度を意識します

特に重要なのは、APIキーの管理です。

.envファイルは外部に共有しないようにしてください。

まとめ

今回は、Pythonを使ってXへ自動投稿する手順を、初めて見る人向けに解説しました。

今回の仕組みでは、posts.csvにWordPress初心者向けの投稿文を30日分用意し、Pythonで毎日1件ずつXへ投稿します。

基本の流れは次の通りです。

  1. .envにX APIキーを設定する
  2. PowerShellで作業フォルダに移動する
  3. Pythonの仮想環境を作成する
  4. 仮想環境を有効化する
  5. 必要なライブラリをインストールする
  6. posts.csvを確認する
  7. post_to_x.pyでテスト投稿する
  8. scheduler.pyで自動投稿を開始する
  9. posts.csvとlogs/post.logで結果を確認する
  10. 投稿文が少なくなったらposts.csvに追加する

最初に目指すべきゴールは、テスト投稿を1件成功させることです。

テスト投稿が成功すれば、APIキー、Python環境、投稿処理が正しく動いていることを確認できます。その後、scheduler.pyを起動しておけば、投稿予定時刻に合わせて毎日1件ずつXへ自動投稿できます。

まずは1件のテスト投稿から始めて、問題なく動くことを確認してから本番運用に進めましょう。

ホーム
掲載依頼
WordPress
スキルアップ
記事カテゴリ
お問い合わせ
Youtube