指定した X ユーザーのポストを毎日取得・保存し、AI で要約して Discord に通知するツール。
GitHub Actions (毎日 JST 08:00)
↓
1. X API で対象ユーザーの過去 24 時間のポストを取得
2. Turso (libSQL) に保存
3. Claude で要約生成
4. Discord Webhook で通知
src/config.ts の TARGET_USERS にユーザーを追加する。
export const TARGET_USERS: TargetUser[] = [
{ userId: "12345678", username: "example_user" },
];Note:
userIdは X API の数値 ID。プロフィール URL からは取得できない。
方法 1: ブラウザの DevTools で調べる(最も確実)
- X (twitter.com) でプロフィールページを開く
- DevTools を開き Network タブ を選択
- ページをリロードして
UserByScreenNameを含むリクエストを探す - レスポンスの
data.user.result.rest_idが userId
data.user.result.rest_id ← ✅ これが userId
data.user.result.professional.rest_id ← ❌ プロフィールカテゴリの ID(不要)
方法 2: X API を直接叩く(Bearer Token のクレジットがある場合)
curl -s "https://api.twitter.com/2/users/by/username/example_user" \
-H "Authorization: Bearer <X_BEARER_TOKEN>" \
| jq '.data.id'クレジット不足 (
CreditsDepleted) でエラーになる場合は方法 1 を使う。
リポジトリの Settings > Secrets and variables > Actions に以下を追加:
| Secret 名 | 取得元 |
|---|---|
X_BEARER_TOKEN |
X Developer Portal |
TURSO_DATABASE_URL |
Turso ダッシュボード |
TURSO_AUTH_TOKEN |
Turso ダッシュボード |
DISCORD_WEBHOOK_URL |
Discord サーバー設定 > 連携サービス > ウェブフック |
ANTHROPIC_API_KEY |
Anthropic Console |
private リポジトリの場合、Actions タブから Workflow を有効にする。
毎日 JST 08:00 に自動実行される。手動実行は Actions タブの workflow_dispatch から可能。
# 依存パッケージのインストール
npm install
# 環境変数の設定
cp .env.example .env
# .env を編集して各値を設定
# 実行
npm startsrc/
config.ts 監視対象ユーザーの管理
db.ts Turso 接続・スキーマ・CRUD
fetch-posts.ts X API タイムライン取得
summarize.ts Claude で要約生成
notify.ts Discord Webhook 送信
main.ts エントリポイント
.github/
workflows/
digest.yml GitHub Actions ワークフロー