Files
karuo-ai/02_卡人(水)/水桥_平台对接/飞书管理/脚本/feishu_token_cli.py

88 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
飞书 Token 命令行:获取 access_token、写入/读取月度 wiki token全部用命令行操作。
用法:
python3 feishu_token_cli.py get-access-token # 刷新并输出 access_token写入 .feishu_tokens.json
python3 feishu_token_cli.py set-march-token <token> # 将 3 月文档 token 写入本地,供 auto_log 读取
python3 feishu_token_cli.py get-march-token # 输出当前 3 月 wiki tokenenv 或本地文件)
"""
import os
import sys
import json
from pathlib import Path
SCRIPT_DIR = Path(__file__).resolve().parent
MONTH_TOKENS_FILE = SCRIPT_DIR / ".feishu_month_wiki_tokens.json"
def _load_month_tokens():
if MONTH_TOKENS_FILE.exists():
try:
with open(MONTH_TOKENS_FILE, "r", encoding="utf-8") as f:
return json.load(f)
except Exception:
pass
return {}
def _save_month_tokens(data):
with open(MONTH_TOKENS_FILE, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
def cmd_get_access_token():
sys.path.insert(0, str(SCRIPT_DIR))
from auto_log import get_token_silent, load_tokens
token = get_token_silent()
if token:
print(token)
return 0
print("", file=sys.stderr)
return 1
def cmd_set_march_token(token_value):
token_value = (token_value or "").strip()
if not token_value:
print("用法: feishu_token_cli.py set-march-token <token>", file=sys.stderr)
return 1
data = _load_month_tokens()
data["3"] = token_value
_save_month_tokens(data)
print(f"✅ 3 月 wiki token 已写入 {MONTH_TOKENS_FILE}")
return 0
def cmd_get_march_token():
# 优先环境变量
env_tok = os.environ.get("FEISHU_MARCH_WIKI_TOKEN", "").strip()
if env_tok:
print(env_tok)
return 0
data = _load_month_tokens()
tok = data.get("3", "").strip()
if tok:
print(tok)
return 0
print("", file=sys.stderr)
return 1
def main():
if len(sys.argv) < 2:
print(__doc__.strip(), file=sys.stderr)
return 1
cmd = sys.argv[1].lower()
if cmd == "get-access-token":
return cmd_get_access_token()
if cmd == "set-march-token":
return cmd_set_march_token(sys.argv[2] if len(sys.argv) > 2 else None)
if cmd == "get-march-token":
return cmd_get_march_token()
print(f"未知命令: {cmd}", file=sys.stderr)
return 1
if __name__ == "__main__":
sys.exit(main())