0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Threadsに毎日決まった時間に複数パターンの投稿文を自動投稿するしくみをつくってみた

0
Last updated at Posted at 2026-04-04

はじめに

この記事では、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開発者登録

  1. https://developers.facebook.com にアクセス
  2. 右上「ログイン」からFacebookアカウントでログイン
  3. メニューからThreads APIを選択
  4. 「Get Started」をクリックして開発者登録

1000018972.jpg

facebookが個人名アカウントでもOk。匿名のthreadsに、facebookで開発者登録しても、個人名がさらされることはない。

STEP 2:アプリを作成

  1. 右上「マイアプリ」→「アプリを作成」
  2. 種類は「その他」を選択
  3. 次の画面で「なし」を選択
  4. Threads APIへのアクセスにチェックをいれる
  5. アプリ名を入力(例:my-threads-app
  6. 「アプリを作成」をクリック

STEP 3:権限を追加

  1. 左メニュー「ユースケース」→「Threads APIにアクセス」の「カスタマイズ」
  2. 「アクセス許可と機能」タブを開く
  3. 以下の2つを追加する
権限名 用途
threads_basic 投稿の取得・分析
threads_content_publish 投稿・スケジュール投稿

両方とも「テスト準備完了」になればOK。


STEP 4:アクセストークンを取得

テスターを追加する

  1. 左メニュー「ユースケース」→「カスタマイズ」→「設定」タブ
  2. 「Threadsテスターを追加または削除」(下図)をクリック
  3. 「Threadsテスター」を選択し、自分のThreadsアカウントのユーザー名を入力して追加

1000018974.jpg

Threadsアプリで招待を承認する

  1. スマホでThreadsアプリを開く
  2. プロフィール→三本線メニュー→「設定」
  3. 「アカウント」→「ウェブサイトのアクセス許可」
  4. 招待を「承認」する

トークンを発行する

  1. 「設定」タブの一番下「ユーザートークン生成ツール」(下図)
  2. アカウント横の「アクセストークン」ボタンをクリック
  3. 表示されたトークンをメモ帳など安全な場所に保存する

image.png

⚠️ アクセストークンは絶対に他人に見せないでください!パスワードと同じです。

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に投稿されれば成功です!

実際に実行すると、

1000019009.jpg

実際にThreads内に投稿することができました!

*このプログラムの仕組みは:

ファイルの1行目を投稿する
投稿したらその行を削除してファイルを上書き保存する

という動作をしています。

STEP 8:Windowsタスクスケジューラで自動化

朝投稿タスクの作成

  1. windowsのスタートメニューで「タスクスケジューラ」を検索して開く

image.png

2. 右側「Create Basic Task...」をクリック

image.png

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.txtposts_evening.txt の投稿が全部終わると自動的に止まります。新しい投稿を追加したい場合はファイルに書き足すか、ループをしたい場合はループのコードを加えてみるなど工夫をしてみてください

まとめ

ステップ 内容
STEP 1〜4 Threads APIの設定・トークン取得
STEP 5〜6 Pythonの準備・ファイル作成
STEP 7 動作確認
STEP 8 タスクスケジューラで自動化

これで毎日決まった時間に自動投稿できる環境が整いました!

参考になればうれしいです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?