結論: Claude CodeとX APIを組み合わせれば、ツイート生成から投稿まで完全自動化できます。Typefully MCPを使えばAPIキー不要で今日から始められます。
この記事の要点:
- Typefully MCP連携なら設定5分でClaude Code→Xドラフト自動作成が可能
- X API直接連携ではOAuth 2.0 PKCE認証 + tweepy/httpxでツイート投稿を完全自動化できる
- Cron × 画像生成を組み合わせると「ネタ発掘→本文生成→画像作成→Xへ自動投稿」まで無人化できる
対象読者: Claude Codeで業務自動化に取り組んでいるエンジニア・マーケター・個人事業主
読了後にできること: Typefully MCPを使ったX自動投稿の最小構成をその日のうちに試せる
「毎日Xに投稿しなきゃ、とは分かってるんですが……」
企業向けAI研修で、SNS担当の方から最もよく聞く悩みの1つです。先日、ある顧問先(従業員50名のマーケティング会社)でこんなことがありました。担当者が「Claude Codeで記事要約を作ってます」と話してくれて、「じゃあXへの投稿もそのままできるんじゃないですか?」と聞いたら、「え、そんなことできるんですか?」という反応でした。
できるんです。しかも、思ったよりずっと簡単に。
この記事では、Claude CodeとX(旧Twitter)を連携して、ツイート生成から自動投稿まで一気通貫で動かす方法を、コピペ可能なコード付きで解説します。「まず5分で動かしたい」という方向けの最小構成から、Cron + 画像生成まで組み合わせた本格自動化まで、段階的に紹介していきます。
まず試したい「Typefully MCP連携」— 設定5分、APIキー不要
X APIに直接触れる前に、まず紹介したいのがTypefully MCPです。研修の場でも「これが一番ハードルが低い」と好評です。
TypifullyはX(Twitter)・LinkedIn・Threads・Bluesky等に対応したSNSスケジューリングツールで、公式のMCPサーバーを提供しています。Claude Codeに接続するだけで、AIがあなたのTypefullyアカウントにドラフトを作成・スケジュールできるようになります。
Typefully MCP のセットアップ
まずTypefullyのアカウントを作り(無料プランあり)、設定画面からMCP接続URLを取得します。
# Claude Code にTypefully MCPを追加
claude mcp add typefully --transport http --url "https://mcp.typefully.com/YOUR_TOKEN"
# 設定確認
claude mcp list接続できたら、Claude Codeのチャットに以下のように話しかけるだけです。
# Claude Codeへの指示例(最もシンプルな構成)
以下のブログ記事の要点を3ツイートのスレッドにしてTypefullyにドラフト保存してください。
記事タイトル: 「ChatGPTで業務を自動化する5つの方法」
要点:
- プロンプトテンプレートで毎回の指示を省略できる
- メール返信の自動生成で1通5分→30秒
- 会議議事録をリアルタイムで整形できる
口調: カジュアルで親しみやすく、「〜なんです」「〜してみたら」系で。
1ツイート目で問題提起、2ツイート目で解決策、3ツイート目で具体的なアクション。
不足している情報があれば、最初に確認してから作業を開始してください。これだけで、Claude CodeがTypefullyにドラフトを作成します。あとはTypefullyの管理画面で確認して「スケジュール」を押すだけ。X APIの設定もOAuth認証も不要です。
事例区分: 想定シナリオ
100社以上のAI研修・コンサル経験をもとに構成した典型的なシナリオです。TypefullyのMCP連携を導入した企業では、SNS担当者が「毎日ネタを考える」作業から解放され、週2〜3本だった投稿頻度が毎日投稿に変わったケースがあります。
TypifullyのMCPで対応できることは意外と多いです。AIエージェントの文書によると、ドラフト作成・編集・スケジュール・タグ管理・画像アップロードまでカバーしています。まずはこれで十分という方も多いはずです。
AIエージェントの文書については、AIエージェント導入完全ガイドで体系的にまとめています。MCPの仕組みや他ツールとの連携も詳しく解説しています。
X API直接連携 — 3つのアプローチと選び方
より細かくコントロールしたい、または独自のロジックを組み込みたい場合は、X API(v2)を直接使います。2026年時点のX APIは以下の3つのアプローチがあります。
| アプローチ | 難易度 | 月額コスト | 向いているケース |
|---|---|---|---|
| Typefully MCP | ★☆☆ | 無料〜(Typefully料金) | ドラフト作成・スケジュール管理メイン |
| X API(tweepy) | ★★★ | 従量課金(投稿1件あたり数円) | 完全自動化・Cron連携・独自ロジック |
| Playwright(ブラウザ操作) | ★★☆ | ゼロ(API不要) | APIコストを避けたい・テスト目的 |
X API認証の仕組みを理解する
X APIでツイートを投稿するには「ユーザーとして投稿する権限」が必要なため、OAuth 2.0 PKCE(User Context)認証を使います。アプリ専用の「App-Only Bearer Token」では投稿できないので注意が必要です。
研修でよく混乱が起きるポイントなので、まとめておきます。
| 認証方式 | できること | できないこと |
|---|---|---|
| OAuth 2.0 App-Only(Bearer Token) | ツイート検索・読み取り | ツイート投稿、いいね、リプライ |
| OAuth 2.0 PKCE(User Context) | ツイート投稿・いいね・リプライ | (制限なし) |
| OAuth 1.0a(旧方式) | 投稿・読み取り全般 | 新規アプリでは非推奨 |
OAuth 2.0 PKCE認証のセットアップ手順
X Developer Portal(developer.x.com)でアプリを登録してから始めます。
Step 1: Developer Portal でアプリ登録
# X Developer Portal で設定する内容
- App permissions: Read and Write(書き込み権限必須)
- Type of App: Web App, Automated App or Bot
- Callback URI: http://localhost:8080/callback(ローカルテスト用)
- Website URL: 自分のウェブサイト or プロフィールURLStep 2: 環境変数でキーを安全に管理
APIキーをコードに直書きするのは絶対NGです(後述の【要注意】セクションで詳述)。必ず環境変数で管理します。
# ~/.zshrc または ~/.bashrc に追記
export X_CLIENT_ID="your_client_id_here"
export X_CLIENT_SECRET="your_client_secret_here"
export X_BEARER_TOKEN="your_bearer_token_here"
# macOS Keychain を使う場合(推奨・より安全)
security add-generic-password -s "x-api-client-id" -a "x-auto-post" -w "your_client_id"
security add-generic-password -s "x-api-client-secret" -a "x-auto-post" -w "your_client_secret"Step 3: OAuth 2.0 PKCEフローで初回認証
#!/usr/bin/env python3
# x_auth_setup.py — 初回認証(ブラウザで一度だけ実行)
import os, json, secrets, hashlib, base64
from urllib.parse import urlencode
import http.server, urllib.parse, webbrowser
import httpx
CLIENT_ID = os.environ["X_CLIENT_ID"]
CLIENT_SECRET = os.environ["X_CLIENT_SECRET"]
REDIRECT_URI = "http://localhost:8080/callback"
TOKEN_FILE = os.path.expanduser("~/.config/x-auto-post/tokens.json")
def generate_pkce():
verifier = secrets.token_urlsafe(64)
challenge = base64.urlsafe_b64encode(
hashlib.sha256(verifier.encode()).digest()
).decode().rstrip("=")
return verifier, challenge
def get_auth_url(verifier, challenge):
params = {
"response_type": "code",
"client_id": CLIENT_ID,
"redirect_uri": REDIRECT_URI,
"scope": "tweet.read tweet.write users.read offline.access",
"state": secrets.token_urlsafe(16),
"code_challenge": challenge,
"code_challenge_method": "S256",
}
return "https://twitter.com/i/oauth2/authorize?" + urlencode(params)
# ブラウザで認証URLを開く
verifier, challenge = generate_pkce()
auth_url = get_auth_url(verifier, challenge)
print(f"ブラウザで認証してください:n{auth_url}")
webbrowser.open(auth_url)
# コールバックでcodeを受け取る(簡易サーバー)
# ... (受け取ったcodeでaccess_tokenを取得しTOKEN_FILEに保存)
print("認証完了!トークンを保存しました。")
# 不足している情報があれば、最初に確認してから作業を開始してください。Claude Code からツイートを生成・投稿するスクリプト
認証が完了したら、いよいよClaude CodeとX APIを組み合わせます。
ツイート生成スクリプト(Claude API → X API)
#!/usr/bin/env python3
# generate_and_post.py — Claude でツイート生成 → X へ投稿
import os, json, httpx
from anthropic import Anthropic
# --- Claude でツイートを生成 ---
def generate_tweet(topic: str, style: str = "casual") -> str:
client = Anthropic()
system_prompt = """あなたはAI・テクノロジー分野のSNSコンテンツクリエイターです。
以下のルールでツイートを生成してください:
- 140字以内
- 「〜なんです」「〜してみたら」系のカジュアルな口調
- 数字や具体例を必ず入れる
- ハッシュタグは最大2つ
- 絵文字は1〜2個まで
仮定した点は必ず"仮定"と明記してください。"""
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=300,
system=system_prompt,
messages=[{"role": "user", "content": f"以下のトピックについてツイートを1つ作成してください:nn{topic}"}]
)
return response.content[0].text.strip()
# --- X API v2 でツイートを投稿 ---
def post_tweet(text: str, token_file: str) -> dict:
with open(token_file) as f:
tokens = json.load(f)
headers = {"Authorization": f"Bearer {tokens['access_token']}",
"Content-Type": "application/json"}
resp = httpx.post(
"https://api.twitter.com/2/tweets",
headers=headers,
json={"text": text},
timeout=30
)
resp.raise_for_status()
return resp.json()
# --- メイン処理 ---
if __name__ == "__main__":
topic = "Claude Codeを使った業務自動化の最新事例"
token_file = os.path.expanduser("~/.config/x-auto-post/tokens.json")
print("ツイート生成中...")
tweet = generate_tweet(topic)
print(f"生成結果:n{tweet}n")
confirm = input("このツイートを投稿しますか? (y/N): ")
if confirm.lower() == "y":
result = post_tweet(tweet, token_file)
print(f"投稿完了! ID: {result['data']['id']}")
else:
print("キャンセルしました。")3ツイートスレッドを自動生成するプロンプト例
# Claude Code への指示 — バイラル投稿向け3ツイート構成
以下のトピックについて、Xのスレッド投稿を3ツイートで作ってください。
トピック: [YOUR_TOPIC]
構成ルール:
1ツイート目(フック): 驚き・共感を誘う問いかけ or 衝撃的な事実。最後に「↓」
2ツイート目(核心): 解決策・具体的なポイント3〜4つを箇条書き
3ツイート目(CTA): まとめ + 次のアクション。元ポストへの言及
口調: カジュアル、「〜なんです」「実は〜」「試してみたら〜」
字数: 各ツイート120字以内
絵文字: ツイートごとに1〜2個まで
不足している情報があれば、最初に確認してから作業を開始してください。スレッド投稿(2ツイート以上を連続投稿)
#!/usr/bin/env python3
# post_thread.py — Xにスレッドを投稿する
import json, httpx, time
def post_thread(tweets: list[str], token_file: str) -> list[str]:
"""
tweets: ['1ツイート目', '2ツイート目', '3ツイート目']
返り値: 投稿済みのツイートIDリスト
"""
with open(token_file) as f:
tokens = json.load(f)
headers = {"Authorization": f"Bearer {tokens['access_token']}",
"Content-Type": "application/json"}
posted_ids = []
reply_to_id = None
for i, text in enumerate(tweets):
payload = {"text": text}
if reply_to_id:
payload["reply"] = {"in_reply_to_tweet_id": reply_to_id}
resp = httpx.post(
"https://api.twitter.com/2/tweets",
headers=headers,
json=payload,
timeout=30
)
resp.raise_for_status()
tweet_id = resp.json()["data"]["id"]
posted_ids.append(tweet_id)
reply_to_id = tweet_id
print(f"[{i+1}/{len(tweets)}] 投稿完了: {tweet_id}")
if i < len(tweets) - 1:
time.sleep(2) # APIレート制限への配慮
return posted_ids
# 使用例
thread = [
"ChatGPT、毎日使ってるのに「もっと賢い使い方があるんじゃ?」と思ってませんか?↓",
"実は3つのコツを知るだけで全然違います✅n・役割指定(「あなたは〇〇の専門家」)n・段階的な質問n・フォーマット指定(表・箇条書き)",
"たった1週間試したら、メール作成が10分→2分になりました。n最初の1歩は「役割指定」から。n→ 詳細はプロフィールのブログへ"
]
post_thread(thread, "~/.config/x-auto-post/tokens.json")画像生成 + Xへの自動投稿を組み合わせる
文字だけのツイートよりも、画像付きのほうがエンゲージメントが高い傾向があります(印象値は2〜3倍と言われています)。Gemini APIで画像を生成してXに添付する構成を紹介します。
Gemini画像生成 → Xへのメディアアップロード
#!/usr/bin/env python3
# post_with_image.py — 画像生成 → X投稿
import os, base64, httpx, json
import google.genai as genai
GEMINI_KEY = open(os.path.expanduser("~/.config/uravation/gemini_api_key")).read().strip()
def generate_thumbnail(prompt: str, output_path: str) -> str:
"""Geminiで画像生成"""
client = genai.Client(api_key=GEMINI_KEY)
models = ["gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"]
for model in models:
try:
resp = client.models.generate_content(
model=model,
contents=prompt,
config=genai.types.GenerateContentConfig(
response_modalities=["image", "text"]
)
)
for part in resp.candidates[0].content.parts:
if part.inline_data and part.inline_data.mime_type.startswith("image/"):
data = part.inline_data.data
if isinstance(data, str):
data = base64.b64decode(data)
with open(output_path, "wb") as f:
f.write(data)
return output_path
except Exception as e:
if "503" in str(e):
print(f"{model} is busy, trying fallback...")
continue
raise
raise RuntimeError("全モデルで画像生成に失敗しました")
def upload_media_to_x(image_path: str, tokens: dict) -> str:
"""XにメディアをアップロードしてmediaIDを返す"""
# X API v1.1 のメディアアップロード(v2未対応のため)
with open(image_path, "rb") as f:
files = {"media": f}
resp = httpx.post(
"https://upload.twitter.com/1.1/media/upload.json",
headers={"Authorization": f"Bearer {tokens['access_token']}"},
files=files,
timeout=60
)
resp.raise_for_status()
return resp.json()["media_id_string"]
def post_tweet_with_media(text: str, media_id: str, tokens: dict) -> dict:
"""画像付きツイートを投稿"""
resp = httpx.post(
"https://api.twitter.com/2/tweets",
headers={"Authorization": f"Bearer {tokens['access_token']}",
"Content-Type": "application/json"},
json={"text": text, "media": {"media_ids": [media_id]}},
timeout=30
)
resp.raise_for_status()
return resp.json()
# 数字と固有名詞は、根拠(出典/計算式)を添えてください。Cron自動化 — 毎日定時にX投稿を無人実行
スクリプトが動いたら、次はCronで自動化します。macOS/Linuxなら `crontab -e` で設定できます。
Cronジョブの設定例
# crontab -e で設定する内容
# 毎朝8:00にX投稿を実行
0 8 * * * /usr/bin/python3 /Users/yourname/scripts/x_auto_post.py >> /tmp/x_post.log 2>&1
# 環境変数を渡す場合(.envファイルを読み込む)
0 8 * * * source /Users/yourname/.config/x-auto-post/.env && python3 /Users/yourname/scripts/x_auto_post.pymacOS LaunchAgentで安定実行(推奨)
Cronより安定性が高いmacOS LaunchAgentを使う方法もあります。
<!-- ~/Library/LaunchAgents/com.yourname.x-auto-post.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "...">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.yourname.x-auto-post</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/yourname/scripts/x_auto_post.py</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/tmp/x_auto_post.log</string>
</dict>
</plist># LaunchAgentを有効化
launchctl load ~/Library/LaunchAgents/com.yourname.x-auto-post.plistClaude CodeでのX投稿自動化 — 全体ワークフロー設計
全体の流れをまとめると、以下のようなパイプラインになります。顧問先でこのパイプラインを構築したとき、担当者に「これって、寝てる間にXが動くってことですよね?」と聞かれて、「そうです」と答えたら目が輝いていました。
# Claude Code での全体パイプライン指示例
以下のワークフローを実行してください:
1. 【ネタ収集】HackerNewsとXのトレンドから今日の注目AIトピックを3つ取得
2. 【選定】その中から最も日本企業に関係しそうなトピックを1つ選択
3. 【ツイート生成】そのトピックで3ツイートのスレッドを生成(口調: カジュアル、数字・具体例必須)
4. 【画像生成】スレッドのサムネイル画像を1200x675pxで生成
5. 【投稿確認】生成内容をターミナルに表示して確認を求める
6. 【投稿実行】承認後、Typefully APIか X API でスケジュール投稿
各ステップで問題があれば報告し、完全自動投稿ではなく人間の確認を挟むこと。
不足している情報があれば、最初に確認してから作業を開始してください。X API 2026年の料金・制限ガイド
2026年2月、X APIは完全従量課金制(Pay-Per-Use)に移行しました。自動投稿を始める前に料金体系を把握しておきましょう。
| プラン | 月額 | 投稿上限 | 読み取り | 向いているケース |
|---|---|---|---|---|
| Free | 0円 | 500件/月 | 不可 | テスト・個人の試験的利用 |
| Basic | 約1.5万円/月 | 3,000件/月 | 10万件/月 | 個人〜小規模ビジネス |
| Pro | 約15万円/月 | 30万件/月 | 100万件/月 | マーケティング企業・ツール開発 |
| 従量課金(Pay-Per-Use) | クレジット購入制 | 購入量に応じる | 同左 | 不定期利用・少量投稿 |
個人が自動投稿を試すなら、まずFreeプランの500件/月で始めるのが現実的です。1日1投稿なら30日で30件なので、Freeプランで十分対応できます。
【要注意】よくある失敗パターンと回避策
失敗1: APIキーをコードに直書きする
❌ client = Anthropic(api_key="sk-ant-api03-xxxxx...")
⭕ client = Anthropic() # 環境変数ANTHROPIC_API_KEYを自動読み取り
なぜ重要か: GitHubに誤ってpushしたら即座にキーが漏洩します。実際に顧問先で「GitHubのパブリックリポにAPIキーを上げてしまった」という事故を2件見ています。`.gitignore` で除外するか、後述のmacOS Keychainを使いましょう。
失敗2: 投稿内容の確認なしで完全自動化する
❌ 生成したツイートをすぐ投稿するCronジョブを組む
⭕ 生成→確認待ち→承認後に投稿というフローを維持する
なぜ重要か: AIが生成したコンテンツは時々ファクトエラーや表現の問題が起きます。最初の1〜2ヶ月は必ず人間の目を通してから投稿してください。品質に信頼が持てるようになってから完全自動化を検討しましょう。
失敗3: レート制限を無視したリトライ処理
❌ エラーが出たらすぐリトライするループを書く
⭕ `time.sleep(60)` で待機してからリトライ、または `Retry-After` ヘッダーを読む
なぜ重要か: X APIのレートリミット(15分で25リクエスト等)を超えると、アカウントが一時停止になるリスクがあります。エラーコード429(Too Many Requests)が返ってきたら必ず待機してください。
失敗4: Typefully以外のOAuthフローを手動でコーディングしようとする
❌ 初めてのX API連携でフルスクラッチのOAuth実装から始める
⭕ まずTypefully MCPで動作確認、その後必要に応じてtweepyを使う
なぜ重要か: OAuth 2.0 PKCEフローは、正しく実装しないとトークンの自動更新(リフレッシュ)でバグが出やすいです。tweepyはこの部分をライブラリが処理してくれるので、初心者には特に推奨します。
tweepyを使ったシンプルな実装(推奨ライブラリ)
X API連携で最も安定しているライブラリがtweepyです。OAuth 2.0 PKCEに対応しており、トークンリフレッシュも自動化できます。
#!/usr/bin/env python3
# x_post_tweepy.py — tweepy を使ったシンプルな投稿
import tweepy, os
# 認証設定(OAuth 2.0 PKCE)
client = tweepy.Client(
consumer_key=os.environ["X_API_KEY"],
consumer_secret=os.environ["X_API_KEY_SECRET"],
access_token=os.environ["X_ACCESS_TOKEN"],
access_token_secret=os.environ["X_ACCESS_TOKEN_SECRET"],
)
# ツイート投稿(最もシンプルな形)
response = client.create_tweet(
text="Claude Codeで自動化してみたら、作業時間が半分になりました。仕組みはシンプルで、ポイントはプロンプト設計にあります。"
)
print(f"投稿完了! ID: {response.data['id']}")
# スレッド投稿(前のツイートにリプライ)
thread_texts = [
"ChatGPTの使い方、まだ「質問するだけ」で止まってませんか?↓",
"実は3つのステップで全然変わります:n①役割指定「あなたはマーケターです」n②条件の明示「100字以内で」n③反復「もっと具体的に」",
"この3ステップを意識するだけで、アウトプットの質が体感的に2〜3倍になります。今日から試してみてください。"
]
first_id = None
for text in thread_texts:
resp = client.create_tweet(
text=text,
in_reply_to_tweet_id=first_id
)
first_id = resp.data["id"]
print(f"投稿: {first_id}")
# 不足している情報があれば、最初に確認してから作業を開始してください。Claude Code × Typefully MCP — 実践的な使い方パターン集
MCPを使った実際のユースケースを紹介します。研修で特に反響が大きかった3パターンです。
パターン1: ブログ記事を3ツイートスレッドに変換
# Claude Code への指示
以下のブログ記事URLの内容を取得して、3ツイートのXスレッドにまとめてTypefullyにドラフト保存してください。
URL: [ブログ記事のURL]
条件:
- 各ツイート120字以内
- 読者が「これ役に立つ!」と感じる情報密度
- 最後のツイートに元記事へのCTAを入れる
- 口調: 「〜なんです」系でカジュアルにパターン2: 競合比較ツイートの生成
# 比較コンテンツ向けプロンプト
以下の2つのAIツールを比較する投稿を作成してください。
ツール1: ChatGPT
ツール2: Claude
観点: プロンプト設計の違い
構成: 問いかけ → 比較表(テキスト形式)→ 結論
口調: フラットで偏りなく
字数: 250字程度(3ツイート分)
仮定した点は必ず"仮定"と明記してください。パターン3: 業界ニュースを日本企業向けに解説
# ニュース解説ツイートプロンプト
以下のニュースを、日本の中小企業の経営者向けに分かりやすく説明するXスレッドを3ツイートで作ってください。
ニュース: [ニュースのURL or 概要]
ターゲット: 生成AI初心者〜中級者の経営者
ゴール: 「うちの会社でも使えそう」と思ってもらう
トーン: カジュアル、過度に技術的にならない
数字と固有名詞は、根拠(出典/計算式)を添えてください。セキュリティのベストプラクティス
自動化スクリプトはAPIキーを扱うため、セキュリティ設定を最初から正しく組んでおくことが重要です。
# APIキーの安全な管理(macOS Keychain方式)
# 登録(初回のみ)
security add-generic-password -s "x-api-key" -a "x-auto-post" -w "YOUR_API_KEY"
# スクリプト内での読み取り
import subprocess
result = subprocess.run(
["security", "find-generic-password", "-s", "x-api-key", "-a", "x-auto-post", "-w"],
capture_output=True, text=True
)
api_key = result.stdout.strip()# .gitignore に必ず追加するもの
*.env
.env.*
tokens.json
*_tokens.json
~/.config/x-auto-post/APIキーの管理については、ChatGPT活用ビジネスガイドでも共通のセキュリティポイントを解説しています。
参考・出典
- Typefully MCP Server公式ドキュメント — Typefully(参照日: 2026-04-25)
- X API Rate Limits — X Developer Docs(参照日: 2026-04-25)
- OAuth 2.0 認証概要 — X Developer Platform(参照日: 2026-04-25)
- X API Pricing 2026: All Tiers — Postproxy(参照日: 2026-04-25)
まとめ:今日から始める3つのアクション
- 今日やること: Typefullyの無料アカウントを作成し、MCPをClaude Codeに接続する(所要時間5分)。まず「今日のAIニュースを3ツイートのスレッドにして」と話しかけてみる
- 今週中: tweepyで投稿スクリプトを書き、開発環境でテスト投稿を動かしてみる
- 今月中: Cronまたは LaunchAgentで定時自動実行を設定する。最初の2週間は手動承認フローを維持しながら品質を確認する
次回予告: 次の記事では「Claude CodeからWordPressに記事を自動投稿する方法」をテーマに、mdファイル→HTML変換→REST API投稿の全パイプラインを解説します。
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。早稲田大学法学部在学中に生成AIの可能性に魅了され、X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援を展開。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談はお問い合わせフォームからお気軽にどうぞ。


