はじめに
この記事では、Threads APIとWindows Task schedularを使ってThreadsに毎日決まった時間に複数パターンの投稿文を自動投稿する仕組みを作る方法を解説します。
プログラミング初心者でも手順通りに進めれば実現できます。
*Threads(スレッズ)とは、Meta社が提供するInstagram連携型のテキスト中心SNSです。Xよりも多くの文字がつぶやけ、利用層がXとは異なることから、新たなつぶやき型SNSとして注目されています。
*前提として、著者はWindowsユーザーでAIアシスト下でのpythonの実装環境と実装経験があり、PCにてVS code上でコードを動かしてます。その背景の元で話が進んでおりますことご了承ください。
*2026年4月現在の情報ですので、最新の情報をお確かめください
完成イメージ
posts_morning.txt(朝用の投稿内容を事前に書いておく)
posts_evening.txt(夜用の投稿内容を事前に書いておく)
↓
Windowsタスクスケジューラが毎朝・毎夜自動実行
↓
Threadsに自動投稿!
費用について
| 項目 | 費用 |
|---|---|
| Threads API | 無料 |
| Python | 無料 |
| Windowsタスクスケジューラ | 無料 |
完全無料で実現できます!
必要なもの
- Facebookアカウント(個人名でOK)
- Threadsアカウント
- Windows PC
- Python(インストール済みであること)
STEP 1:Meta開発者登録
- https://developers.facebook.com にアクセス
- 右上「ログイン」からFacebookアカウントでログイン
- メニューからThreads APIを選択
- 「Get Started」をクリックして開発者登録
facebookが個人名アカウントでもOk。匿名のthreadsに、facebookで開発者登録しても、個人名がさらされることはない。
STEP 2:アプリを作成
- 右上「マイアプリ」→「アプリを作成」
- 種類は「その他」を選択
- 次の画面で「なし」を選択
- Threads APIへのアクセスにチェックをいれる
- アプリ名を入力(例:
my-threads-app) - 「アプリを作成」をクリック
STEP 3:権限を追加
- 左メニュー「ユースケース」→「Threads APIにアクセス」の「カスタマイズ」
- 「アクセス許可と機能」タブを開く
- 以下の2つを追加する
| 権限名 | 用途 |
|---|---|
threads_basic |
投稿の取得・分析 |
threads_content_publish |
投稿・スケジュール投稿 |
両方とも「テスト準備完了」になればOK。
STEP 4:アクセストークンを取得
テスターを追加する
- 左メニュー「ユースケース」→「カスタマイズ」→「設定」タブ
- 「Threadsテスターを追加または削除」(下図)をクリック
- 「Threadsテスター」を選択し、自分のThreadsアカウントのユーザー名を入力して追加
Threadsアプリで招待を承認する
- スマホでThreadsアプリを開く
- プロフィール→三本線メニュー→「設定」
- 「アカウント」→「ウェブサイトのアクセス許可」
- 招待を「承認」する
トークンを発行する
- 「設定」タブの一番下「ユーザートークン生成ツール」(下図)
- アカウント横の「アクセストークン」ボタンをクリック
- 表示されたトークンをメモ帳など安全な場所に保存する
⚠️ アクセストークンは絶対に他人に見せないでください!パスワードと同じです。
STEP 5:Pythonの準備
必要なライブラリをインストール
VS codeを開き、ターミナルで下記実行
pip install requests schedule
STEP 6:フォルダとファイルを作成
C:\などの下にthreads_bot\ などのフォルダを作成し、以下の3つのファイルを作成します。
posts_morning.txt(朝用投稿内容)
例:
おはようございます!今日も一日頑張りましょう!
朝の一言:小さな一歩が大きな変化を生む
今日も素敵な一日になりますように!
⚠️ 1行に1投稿、空行なしで書いてください。
posts_evening.txt(夜用投稿内容)
例:
今日も一日お疲れ様でした!
夜のひととき、ゆっくり過ごしていますか?
明日も素敵な一日になりますように!
threads_post.py(自動投稿プログラム)
import requests
import sys
from datetime import datetime
# Your access token and user ID
ACCESS_TOKEN = "ここにアクセストークンを貼り付ける"
USER_ID = "ここにユーザーIDを貼り付ける"
# Read the next post from the specified file
def get_next_post(filename):
with open(filename, "r", encoding="utf-8") as f:
# Skip empty lines
lines = [line.strip() for line in f.readlines() if line.strip()]
if not lines:
print(f"{filename} に投稿内容がありません")
return None
# Get the first post and remove it from the file
next_post = lines[0]
remaining = lines[1:]
with open(filename, "w", encoding="utf-8") as f:
f.write("\n".join(remaining))
return next_post
# Create a post container
def create_post_container(text):
url = f"https://graph.threads.net/v1.0/{USER_ID}/threads"
params = {
"media_type": "TEXT",
"text": text,
"access_token": ACCESS_TOKEN
}
response = requests.post(url, params=params)
data = response.json()
return data.get("id")
# Publish the post
def publish_post(container_id):
url = f"https://graph.threads.net/v1.0/{USER_ID}/threads_publish"
params = {
"creation_id": container_id,
"access_token": ACCESS_TOKEN
}
response = requests.post(url, params=params)
return response.json()
# Main posting function
def post_to_threads(filename):
text = get_next_post(filename)
if not text:
return
print(f"投稿中({datetime.now().strftime('%Y-%m-%d %H:%M')}):{text}")
container_id = create_post_container(text)
if container_id:
result = publish_post(container_id)
print("投稿完了:", result)
else:
print("投稿失敗")
# Determine which file to use based on argument
if len(sys.argv) > 1:
if sys.argv[1] == "morning":
post_to_threads("posts_morning.txt")
elif sys.argv[1] == "evening":
post_to_threads("posts_evening.txt")
else:
print("引数を指定してください: morning または evening")
ユーザーIDの確認方法
ちなみに、以下のコードを、一旦threads_post.pyにファイルを置き換え、ターミナルで
python threads_post.py
を実行するとユーザーIDが確認できます。
import requests
ACCESS_TOKEN = "ここにアクセストークンを貼り付ける"
def get_user_id():
url = "https://graph.threads.net/v1.0/me"
params = {
"fields": "id,username",
"access_token": ACCESS_TOKEN
}
response = requests.get(url, params=params)
data = response.json()
print("ユーザー情報:", data)
return data
get_user_id()
STEP 7:動作確認
VS Codeのターミナルで以下を実行してみてください:
cd C:\threads_bot
python threads_post.py morning
実際にThreadsに投稿されれば成功です!
実際に実行すると、
実際にThreads内に投稿することができました!
*このプログラムの仕組みは:
ファイルの1行目を投稿する
投稿したらその行を削除してファイルを上書き保存する
という動作をしています。
STEP 8:Windowsタスクスケジューラで自動化
朝投稿タスクの作成
- windowsのスタートメニューで「タスクスケジューラ」を検索して開く
2. 右側「Create Basic Task...」をクリック
3. 以下のように設定する
| 項目 | 内容 |
|---|---|
| Name | Threads朝投稿 |
| Trigger | Daily |
| 時間 | 08:00 AM |
| Action | Start a program |
| Program/script | Pythonのフルパス(下記参照) |
| Add arguments | threads_post.py morning |
| Start in | C:\threads_bot |
*「タイムゾーン間で同期する」にチェックが入っているか確認。入っていないとサマータイム切り替えなどで時間がズレることがあります。
⚠️ PythonのフルパスはPCによって異なります
タスクスケジューラではpythonだけでは認識されない場合があります。以下の手順でフルパスを確認してください。
コマンドプロンプトまたはターミナルで以下を実行:
where python
表示されたパス(例:C:\Users\ユーザー名\AppData\Local\...\python.exe)を「Program/script」に入力してください。
4. 「Finish」をクリックして完了
夜投稿タスクの作成
同じ手順でもう一つ作成します。
| 項目 | 内容 |
|---|---|
| Name | Threads夜投稿 |
| Trigger | Daily |
| 時間 | 08:00 PM |
| Action | Start a program |
| Program/script | Pythonのフルパス |
| Add arguments | threads_post.py evening |
| Start in | C:\threads_bot |
注意点
- PCの電源が入っていないと自動投稿されません
- アクセストークンの有効期限は長期間ですが、期限が切れたら再取得が必要です
-
posts_morning.txtとposts_evening.txtの投稿が全部終わると自動的に止まります。新しい投稿を追加したい場合はファイルに書き足すか、ループをしたい場合はループのコードを加えてみるなど工夫をしてみてください
まとめ
| ステップ | 内容 |
|---|---|
| STEP 1〜4 | Threads APIの設定・トークン取得 |
| STEP 5〜6 | Pythonの準備・ファイル作成 |
| STEP 7 | 動作確認 |
| STEP 8 | タスクスケジューラで自動化 |
これで毎日決まった時間に自動投稿できる環境が整いました!
参考になればうれしいです!





