|
|
||
|---|---|---|
| .. | ||
| scripts | ||
| src/python_auth_runtime | ||
| README.md | ||
| pyproject.toml | ||
README.md
@clawd/auth-runtime-py
Python 版本的 OpenClaw Auth Runtime。
全局配置
所有 skill 共享同一份全局配置,无需在每个 skill 中重复配置。
创建全局配置文件
# 复制模板
cp ~/.openclaw/.env.example ~/.openclaw/.env
# 编辑配置文件
vi ~/.openclaw/.env
配置文件内容
# ~/.openclaw/.env
# Auth Runtime 配置
CLIENT_KEY=sk_ae28fc4e.xxx
AUTH_BASE=https://api-gw-test.yuanwei-lnc.com
# Gemini API 配置(可选)
GEMINI_API_KEY=your-gemini-api-key
注意: ~/.openclaw/.env 包含敏感信息,不要提交到 git。
安装
uv pip install /path/to/python_auth_runtime
使用方式
最简单的用法
from python_auth_runtime import create_env_config, request_api_with_auto_refresh
# 自动从 ~/.openclaw/.env 加载配置
config = create_env_config()
# 调用 API
response = request_api_with_auto_refresh(
method="POST",
url=f"{config.auth_base}/ecom/tasks/scrape",
dry_run=False,
config=config,
body={"url": "https://detail.1688.com/offer/123.html"},
)
配置加载优先级
-
环境变量(最高优先级)
export CLIENT_KEY="override-key" python script.py -
全局配置文件
~/.openclaw/.envCLIENT_KEY=sk_ae28fc4e.xxx -
默认值
AUTH_BASE:https://api-gw-test.yuanwei-lnc.comAUTH_CACHE_DIR:/tmp/skill-auth-cacheAUTH_MIN_TTL_SEC:60
完整示例
#!/usr/bin/env python3
# your-skill/scripts/main.py
from python_auth_runtime import create_env_config, request_api_with_auto_refresh
import json
def main():
# 自动从 ~/.openclaw/.env 加载配置
config = create_env_config()
# 验证配置
if not config.client_key:
print("❌ CLIENT_KEY not found!")
print("Please create ~/.openclaw/.env with your CLIENT_KEY")
print("See: ~/.openclaw/.env.example")
return 1
# 调用 1688 API
response = request_api_with_auto_refresh(
method="POST",
url=f"{config.auth_base}/ecom/tasks/scrape",
dry_run=False,
config=config,
body={"url": "https://detail.1688.com/offer/123.html"},
)
if response.status == 200:
data = json.loads(response.body)
print("商品价格:", data.get("price"))
else:
print(f"❌ 失败:{response.status}")
print(response.body)
return 0
if __name__ == "__main__":
exit(main())
API 参考
配置
create_env_config() -> EnvConfig
从环境变量创建配置(自动加载 ~/.openclaw/.env)。
| 配置项 | 默认值 | 说明 |
|---|---|---|
AUTH_BASE |
https://api-gw-test.yuanwei-lnc.com |
认证基础 URL |
CLIENT_KEY |
必需 | 客户端密钥(从全局配置加载) |
AUTH_CACHE_DIR |
/tmp/skill-auth-cache |
缓存目录 |
AUTH_MIN_TTL_SEC |
60 |
最小令牌 TTL(秒) |
令牌管理
get_access_token(dry_run, config) -> str
获取访问令牌(带缓存)。
refresh_access_token(dry_run, config) -> str
刷新访问令牌(绕过缓存)。
API 请求
request_api(method, url, auth_token, body) -> ApiResponse
发送 HTTP 请求。
request_api_with_auto_refresh(method, url, dry_run, config, body) -> ApiResponse
发送 API 请求并自动刷新令牌。
多 Agent Skill 配置
对于多 Agent skill,可以在全局配置中添加:
# ~/.openclaw/.env
# 主配置
CLIENT_KEY=sk_ae28fc4e.xxx
# Agent 特定配置
AGENT_1_CLIENT_KEY=sk_agent1.xxx
AGENT_2_CLIENT_KEY=sk_agent2.xxx
# 或者使用统一配置
# 所有 agent 共享同一个 CLIENT_KEY
在代码中:
import os
from python_auth_runtime import create_env_config
# 主配置
config = create_env_config()
# 或者访问特定 agent 的配置
agent1_key = os.getenv("AGENT_1_CLIENT_KEY", config.client_key)
环境变量列表
| 变量 | 默认值 | 说明 |
|---|---|---|
CLIENT_KEY |
必需 | 客户端密钥 |
AUTH_BASE |
https://api-gw-test.yuanwei-lnc.com |
认证基础 URL |
AUTH_CACHE_DIR |
/tmp/skill-auth-cache |
缓存目录 |
AUTH_MIN_TTL_SEC |
60 |
最小令牌 TTL(秒) |
GEMINI_API_KEY |
- | Gemini API Key(用于翻译) |
ECOM_BASE |
- | 1688 API 基础 URL |
测试
cd /Users/xiaolongxia/Documents/ai-build-app/skills/excel-toolkit/python_auth_runtime
uv run python scripts/example_usage.py
项目结构
python_auth_runtime/
├── src/python_auth_runtime/
│ └── __init__.py # 核心实现(自动加载全局配置)
├── scripts/
│ ├── load_env.py # .env 加载工具(可选使用)
│ └── example_usage.py # 使用示例
├── pyproject.toml
└── README.md
许可证
MIT