wjx-cli-use
v0.3.2Guide for using wjx-cli (Wenjuanxing CLI) to create surveys, query responses, and analyze data. Use when the user mentions: 问卷, 调查, 收集, 表单, 投票, 考试, 测评, 满意度,...
wjx-cli 使用指南
wjx-cli 是问卷星 OpenAPI 的命令行工具。命令格式:wjx <模块> <操作> [选项]。
全局选项:--api-key <key> 覆盖凭据,--table 表格输出,--dry-run 预览请求不发送,--stdin 从管道读 JSON 参数。
AI Agent 行为准则(必读)
规则 0:创建问卷只用 create-by-json(强制)
禁止使用 wjx survey create-by-text——除非用户用"DSL"、"文本格式"等字眼明确要求。原因:
- DSL 文本格式覆盖题型不全(70+ 题型 vs DSL 27 种)
- DSL 容易被 shell 转义破坏(PowerShell 的
$1/$2会被识别为变量丢失) create-by-text已弃用,CLI 入口会打印弃用警告
正确做法:把题目写成 JSONL(每行一个 JSON 对象,首行 qtype:"问卷基础信息" 元数据),调用 wjx survey create-by-json --file <path>.jsonl。所有题型、投票、考试、表单都走这一条路径。
规则 1:一个需求 = 一个问卷
无论用户要求多少种题型,必须在一次 create-by-json 调用中包含所有题目。一个问卷可包含任意数量、任意类型的题目。
规则 2:问卷类型 ≠ 题目类型
"投票/考试/调查"是问卷类型(--type 参数)。JSONL 创建投票时使用 qtype:"投票单选" / qtype:"投票多选",并显式传 --type 3;只有旧 DSL 文本格式才使用普通 [单选题] / [多选题],不存在 [投票单选题] 标签。
规则 3:不支持的题型要明确告知
签名题(用 [绘图题] 替代)、地区题(用 [多级下拉题] 或网页端添加)、NPS 专用题(用 [量表题] + 0~10)不在 DSL 支持范围内。告知用户替代方案,继续创建其他题目,不要反复尝试或拆分多个问卷。
规则 4:面向用户说自然语言,不说 CLI 命令
CLI 是你(AI)在后台执行的工具,不要在回复中展示命令或命令行用法。唯一例外:用户明确要求看命令时。
- 正确:「问卷已创建,这是填写链接:https://...」
- 错误:「你可以运行
wjx survey list查看问卷列表」
规则 5:未配置或返回 API Key 错误时先提醒配置
在安装/初始化流程、用户明确要求检查配置,或命令实际返回 API Key 相关错误时,引导用户处理 API Key。
- 未配置 API Key:如果命令返回未配置错误,停止当前业务操作,提醒用户先获取并配置 API Key,不要继续尝试创建、查询、导出等需要鉴权的命令
- Key 错误或过期:提醒用户重新获取 API Key,并在配置成功后继续原任务
- 已返回 API Key 相关错误:如果命令返回
API Key is required、Invalid API Key、appkey error或类似鉴权错误,必须立刻向用户说明需要处理 API Key,并给出获取/重新配置 API Key 的下一步;不要只复述错误信息 - 获取 API Key:让用户访问
https://<域名>/weixinlogin.aspx?redirecturl=%2Fnewwjx%2Fmanage%2Fuserinfo.aspx%3FshowApiKey%3D1,默认域名为www.wjx.cn - 配置方式:用户提供 Key 后,由 AI 在后台执行
wjx init --api-key <key>;不要让用户自己敲命令,除非用户明确要求
收到 API Key 相关错误后的用户提醒应使用自然语言,例如:
刚才的操作返回了 API Key 相关错误,说明当前还没有配置 API Key,或者 Key 已失效。请先打开下面的链接获取/重新获取 API Key,拿到后发给我,我再继续帮你完成后续操作:
https://www.wjx.cn/weixinlogin.aspx?redirecturl=%2Fnewwjx%2Fmanage%2Fuserinfo.aspx%3FshowApiKey%3D1
规则 6:发布与提交答卷的几个易错点
- 发布问卷状态参数:用
wjx survey status --vid <vid> --state 1(1=发布、2=暂停、3=删除)。--status是兼容别名,但默认参数名是--state。 - 提交答卷必须带版本号:问卷被发布/编辑后
version自增,提交时不带最新jpmversion会被服务端拒绝并报"问卷已被修改请刷新"。wjx response submit默认会自动获取最新版本注入,请不要加--no-auto-version,也不需要手动算版本号。 - submitdata 题号一律用
submit-template返回的 q_index:问卷星服务端严格按getSurvey返回的原始q_index校验提交的题号("问卷基础信息"元数据占 q_index=1,真实题目从 2 开始编号)。手算很容易搞错——直接跑wjx response submit-template --vid <问卷ID>,每题的placeholder就是正确格式,改成真实答案即可。选项序号仍然是 1-based(从 1 数到 N)。 - 避开 shell
$转义陷阱:submitdata 含$分隔符,PowerShell 双引号会把$1/$3当变量吞掉。首选--submitdata-file <path>(从文件读,彻底绕开 shell);其次用 PowerShell 单引号--submitdata '1$1}2$3'。CLI 会在提交前做$sanity check:一个$都没有时立刻报 INPUT_ERROR。 - 矩阵题可复制示例:行号!列号,多行用
,,多列用|:- 矩阵单选 3×4:
6$1!1,2!3,3!2 - 矩阵多选 3 行:
7$1!1|2,2!3,3!1|4 - 矩阵量表 3 行:
8$1!5,2!4,3!3
- 矩阵单选 3×4:
快速路由
| 用户意图 | 命令 |
|---|---|
| 做调查/问卷 | wjx survey create-by-json --file survey.jsonl |
| 做考试/测验 | wjx survey create-by-json --file exam.jsonl --type 6 |
| 做投票 | wjx survey create-by-json --file vote.jsonl --type 3 |
| 做表单/报名表 | wjx survey create-by-json --file form.jsonl --type 7 |
| 看问卷结果 | 先 wjx survey list 找 vid,再 wjx response report --vid <vid> |
| 导出答卷数据 | wjx response download --vid <vid> |
| 分析 NPS | wjx analytics nps --scores "[9,10,7,3]" |
| 导入联系人 | wjx contacts add --users '[...]'(需 WJX_CORP_ID) |
| 查看问卷链接 | wjx survey url --mode edit --activity <vid> |
安装与配置
首次使用时按以下步骤执行。AI 应直接执行命令,不要求用户去终端操作。
步骤 1:检查并安装 Node.js 和 wjx-cli
node --version
如果 Node.js 未安装或版本 < 20,需要先安装。参见 references/install-nodejs.md,根据操作系统选择安装方式。
Node.js 就绪后:
npm install -g wjx-cli
wjx --version
步骤 2:获取并配置 API Key
API Key 需要用户手动获取(无法自动化)。
确定域名:默认 www.wjx.cn。如果用户使用自定义域名(如 xxx.sojump.cn),替换下方链接中的域名。
- 让用户打开(
<域名>替换为实际域名,默认www.wjx.cn):https://<域名>/weixinlogin.aspx?redirecturl=%2Fnewwjx%2Fmanage%2Fuserinfo.aspx%3FshowApiKey%3D1 - 微信扫码登录后复制 API Key
- 拿到 Key 后执行:
wjx init --api-key <用户提供的key>
自定义域名追加 --base-url:
wjx init --api-key <key> --base-url https://<域名>
凭据优先级:--api-key 参数 > WJX_API_KEY 环境变量 > ~/.wjxrc 配置文件。通讯录操作另需 WJX_CORP_ID。
步骤 3:验证
wjx doctor
所有检查项应为 ok。失败时参见下方"常见错误与处理"。
安装完成后的回复(重要)
验证通过后,必须向用户展示自然语言使用示例,不要展示 CLI 命令:
安装完成!你现在可以直接告诉我你想做什么,比如:
- 「帮我做一份客户满意度调查,包含 NPS 评分题」
- 「出一套 JavaScript 基础测验,10 道选择题」
- 「查看我的问卷列表」
- 「分析一下这组 NPS 评分:9,10,7,3,8,10,6」
- 「把问卷 12345 的答卷数据导出为 CSV」
- 「帮我提交一份问卷的答案」
- 「帮我把这批联系人导入到通讯录」
命令总览
| 模块 | 命令 | 说明 |
|---|---|---|
survey | list, get, create, create-by-text, create-by-json, delete, status, settings, update-settings, upload, export-text, url | 问卷增删改查与配置 |
response | query, realtime, download, submit, modify, clear, report, count | 答卷数据操作 |
contacts | query, add, delete | 联系人管理(需 WJX_CORP_ID) |
department | list, add, modify, delete | 部门管理 |
admin | add, delete, restore | 管理员管理 |
tag | list, add, modify, delete | 标签管理 |
account | list, add, modify, delete, restore | 子账号管理 |
sso | subaccount-url, user-system-url, partner-url | SSO 链接生成 |
analytics | decode, nps, csat, anomalies, compare, decode-push | 本地分析(无需 API Key) |
init / doctor / whoami | — | 配置 / 诊断 / 验证 |
核心工作流
创建问卷(统一使用 JSONL 格式)
重要:必须执行
wjx survey create-by-json命令来创建问卷。只生成 JSONL 文本而不执行命令,问卷不会被创建到问卷星平台上。
wjx survey create-by-json --file survey.jsonl
# 或直接传字符串
wjx survey create-by-json --jsonl "$(cat survey.jsonl)"
JSONL 每行一道题(首行可放 {"_meta":{"title":"...","description":"..."}}),字段命名见 references/question-types.md 的 q_type/q_subtype 映射表,覆盖 70+ 题型(含矩阵/比重/滑块/文件上传/排序)。题目 title 只写正文,不写题目类型;表格组合标准写法为 rowtitle + types + selects,投票题标准写法为 qtype:"投票单选" / qtype:"投票多选" + select。
问卷类型:--type 1 调查(默认),3 投票,6 考试,7 表单。
考试问卷注意:正确答案和每题分值无法通过 API 设置。创建后应提供编辑链接 wjx survey url --mode edit --activity <vid>,指引用户在网页端配置。
已弃用命令:
wjx survey create-by-text(DSL 文本)和wjx survey create --questions(老 JSON 数组)仅为兼容保留,新项目一律使用create-by-json。DSL 语法仍可见 references/dsl-syntax.md 供历史代码参考。
答卷与分析
先获取 vid(wjx survey list),再用 wjx response 子命令。下载格式:--suffix 0 CSV,1 SAV,2 Word。详见 references/response-commands.md。
通讯录与账号
角色:1=系统管理员, 2=问卷管理员, 3=统计查看, 4=完整查看。详见 references/contacts-commands.md。
常见错误与处理
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
API Key is required | 未配置 API Key | 停止当前业务操作,明确提醒用户去获取并配置 API Key;用户提供后执行 wjx init --api-key <key> |
Invalid API Key / "appkey error" | Key 错误或过期 | 明确提醒用户重新获取 API Key(见步骤 2),配置成功后继续原任务 |
vid is required | 未指定问卷 ID | 先 wjx survey list 获取 vid |
Corp ID is required | 通讯录操作需企业 ID | wjx init 配置 WJX_CORP_ID |
Network Error / 超时 | 网络不通或 base_url 错误 | wjx doctor 检查,--dry-run 预览 |
| 创建问卷题目丢失 | DSL 格式错误 | 检查题号 + [题型标签],选项各占一行 |
