Files
su-planning-office/skills/tencent-survey/references/auth.md
T

3.5 KiB
Raw Blame History

腾讯问卷鉴权检查

何时需要鉴权

  • 会话首次调用工具前:执行一次鉴权检查
  • 鉴权通过后:同一会话内后续调用无需重复检查,直接调用工具即可
  • 按需重试:仅当工具调用返回以下鉴权错误时,才需重新执行鉴权流程:
    • invalid_token / invalid token
    • token expired
    • missing_token
    • invalid_token_prefix

腾讯问卷授权流程,必须按以下步骤执行:

快速配置:通过环境变量传入 Token

如果已有 Token,可通过 TENCENT_SURVEY_TOKEN 环境变量直接完成配置,跳过 OAuth 授权:

TENCENT_SURVEY_TOKEN=xxx bash "${SKILL_DIR}/setup.sh" wj_check_and_start_auth
输出 处理方式
READY ✅ Token 已写入配置,直接执行用户任务
ERROR:invalid_token_prefix Token 格式错误,必须以 wjpt_ 开头
ERROR:save_token_failed Token 写入配置失败

设置了 TENCENT_SURVEY_TOKEN 时,脚本会优先使用该 Token,不再发起 OAuth 流程。

第一步:检查状态(立即返回)

未设置 TENCENT_SURVEY_TOKEN 时,进入标准 OAuth 设备授权流程:

bash "${SKILL_DIR}/setup.sh" wj_check_and_start_auth

${SKILL_DIR} 为当前 skill 所在目录路径(即 setup.sh 所在目录)。

输出 处理方式
READY ✅ 直接执行用户任务,无需第二步
NONCE:<nonce> 记录 nonce 值,用于展示给用户(在 AUTH_REQUIRED 之前输出)
AUTH_REQUIRED:<url> 立即向用户展示授权链接(见下方模板),然后执行第二步
ERROR:* 告知用户对应错误

第二步:等待授权完成(仅 AUTH_REQUIRED 时执行)

展示授权链接后,立即执行:

bash "${SKILL_DIR}/setup.sh" wj_wait_auth
输出 处理方式
TOKEN_READY:ok ✅ 授权成功,Token 已写入配置,继续执行用户任务
AUTH_TIMEOUT 告知用户:「授权超时,请重新发起请求。」
ERROR:* 告知用户对应错误,请重新发起请求

第三步:人工兜底(前两步都失败的情况)

🔑 手动获取 Token:访问 https://wj.qq.com/claw 登录后创建 Token,再通过环境变量配置:

TENCENT_SURVEY_TOKEN=<your_token> bash "${SKILL_DIR}/setup.sh" wj_check_and_start_auth

或手动执行 mcporter 命令:

mcporter config add tencent-survey "https://wj.qq.com/api/v2/mcp" \
    --header "Authorization=Bearer <your_token>" \
    --transport http \
    --scope home

Token 以 wjpt_ 开头,可在 https://wj.qq.com/oauth/authorize 登录后创建。

授权链接展示模板

当第一步输出 AUTH_REQUIRED:<url> 时,立即向用户展示:

🔑 需要先完成腾讯问卷授权

请确保在浏览器中打开以下链接完成授权:点击授权腾讯问卷

🔑 授权码(nonce):{nonce}

⚠️ 请使用 QQ 或微信 扫码 / 登录授权

(授权后将自动继续,无需回复)

错误说明

错误 含义
ERROR:mcporter_not_found 缺少依赖,请先安装 Node.js
ERROR:invalid_token_prefix TENCENT_SURVEY_TOKEN 格式错误,必须以 wjpt_ 开头
ERROR:empty_token 授权异常,Token 为空
ERROR:save_token_failed Token 写入配置失败
AUTH_TIMEOUT 用户未在时限内完成授权