📚 ナレッジベース

Claude_Code_自動化スクリプトの401対策

最終更新 2026年07月15日 / 21_ナレッジベース/プロダクト開発/Claude_Code_自動化スクリプトの401対策.md

claude CLI を自動化スクリプトで使うと401で止まる → 1年トークンで根絶

問題

claude -p "..." を cron/シェルスクリプトから非対話実行すると、定期的にこのエラーで止まる:

API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid authentication credentials"}}

原因

Max プランの /login(ブラウザOAuth)で取得したトークンは、スクリプト実行環境では自動更新されず、期限切れになると401ANTHROPIC_API_KEY も未設定だと認証手段がなくなる。

解決=claude setup-token(1年有効・Maxプラン内・別課金なし)

大串が1回だけ実行(1年持つ):

claude setup-token
# → ブラウザOAuth認証 → 1年有効の長期トークンが出力される(ファイルには保存されない)
# 出力トークンを保存:
echo "出力されたトークン" > ~/.claude/claude_code_oauth_token
●●●●●● 600 ~/.claude/claude_code_oauth_token

スクリプト側(改修済み): 先頭でトークンファイルがあれば読む:

CLAUDE_TOKEN●●●●●●="$HOME/.claude/claude_code_oauth_token"
[ -f "$CLAUDE_TOKEN●●●●●●" ] && export CLAUDE_CODE_OAUTH_TOKEN="$(cat "$CLAUDE_TOKEN●●●●●●")"

→ claude CLI がこのトークンを使う。1年間401にならない。1年後に切れたら同じ claude setup-token で再生成。

認証方式の比較

方式 生成 期限 課金 用途
CLAUDE_CODE_OAUTH_TOKEN(推奨) claude setup-token 1年 Maxプラン内 cron/スクリプト
ANTHROPIC_API_KEY console.anthropic.com 無期限 別途従量課金 API
/login ブラウザ 短命・自動更新 Maxプラン内 対話のみ(スクリプト不可)

改修済みスクリプト(2026-07-15)

~/Obsidian/scripts/ の以下がトークンを読む+401検知でSlack/ログ通知するように改修済み:
- generate_x_posts_ogushi.sh(X投稿案 自動生成)
- auto_organize_inbox.sh(Inbox自動整理・10/15/20時)

→ 401で止まると Slack+ログに「claude setup-token を実行して保存」と復旧手順が出る。

関連