teacher-elf-broadcast
教师精灵群发任务
通过教师精灵 OpenAPI 创建群发任务:提交前可预检参数,提交后任务由教师精灵侧执行并推送结果(见对接文档中的 Kafka 结果消息)。
前置条件
- 已申请教师精灵 appId 与 appSecret(对接文档要求调用需验签)。
- 环境变量已配置(或在
~/.openclaw/openclaw.json的skills.entries.teacher-elf-broadcast.env中配置):TEACHER_ELF_APP_ID:应用 IDTEACHER_ELF_APP_SECRET:应用秘钥,用于验签
- 可选:
TEACHER_ELF_BASE_URL,不设则默认生产https://gateway.staff.xdf.cn;测试环境可设为https://gateway.test.xdf.cn。
配置示例(openclaw.json,建议用环境变量占位不写死秘钥):
{
"skills": {
"entries": {
"teacher-elf-broadcast": {
"enabled": true,
"env": {
"TEACHER_ELF_APP_ID": "${TEACHER_ELF_APP_ID}",
"TEACHER_ELF_APP_SECRET": "${TEACHER_ELF_APP_SECRET}"
}
}
}
}
}
- 技能目录路径在说明中可用
{baseDir}引用。
详细接口说明与鉴权方式见 {baseDir}/references/api.md。
验证技能包是否能正常运行
在已拿到 appId 和 appSecret 后,可按以下步骤自测脚本与鉴权是否正常。
-
设置环境变量(当前终端或写入
~/.profile/ 部署环境)export TEACHER_ELF_APP_ID="你的appId" export TEACHER_ELF_APP_SECRET="你的appSecret"若用测试环境,再设置:
export TEACHER_ELF_BASE_URL="https://gateway.test.xdf.cn" -
用预检接口做一次请求
进入技能目录(或将下面路径中的{baseDir}换成实际技能目录,如~/.openclaw/skills/teacher-elf-broadcast或仓库中的skills/teacher-elf-broadcast),执行:cd {baseDir} python3 scripts/teacher_elf_task.py preflight --payload-file scripts/examples/preflight-minimal.json建议先把
scripts/examples/preflight-minimal.json里的email改成你的邮箱,studentCode改成你环境里存在的测试学员编码(若无真实学员,可先不改;接口可能返回业务校验错误,但能说明请求已到达服务端且鉴权通过)。 -
看返回结果
- 能拿到 JSON 响应(无论
success为 true 或 false):说明网络、鉴权、脚本均正常;若为业务错误(如参数不合法、学员不存在),按接口文档调整请求体即可。 - 401 / 403:鉴权失败,检查 appId、appSecret、环境变量是否与申请一致。
- 连接超时 / 无法解析域名:检查网络与
TEACHER_ELF_BASE_URL是否正确(生产/测试域名)。
- 能拿到 JSON 响应(无论
-
在 OpenClaw 中验证
若技能已放入 OpenClaw 的加载目录(如 workspace 的skills/或~/.openclaw/skills),可在对话中让 Agent 执行「对教师精灵做一次预检」或「用教师精灵预检接口验证一下」,确认 Agent 能正确调用本技能与脚本。
常用流程
-
预检(推荐先执行)
检查组装的参数是否符合创建任务要求,避免提交后因校验失败退回。python3 {baseDir}/scripts/teacher_elf_task.py preflight --payload-file /path/to/task.json或从 stdin 传入 JSON:
cat /path/to/task.json | python3 {baseDir}/scripts/teacher_elf_task.py preflight -
提交任务
组装好email、taskName、taskType、schoolId、receiverList等(见对接文档),写入 JSON 文件后提交:python3 {baseDir}/scripts/teacher_elf_task.py save --payload-file /path/to/task.json -
批量查询关系 / 校验并初始化关系
需要时调用(见 references/api.md):- 批量查询关系(一次最多 50 学员):
batch-query - 校验并初始化关系(一次最多 100 学员):
init-verify
python3 {baseDir}/scripts/teacher_elf_task.py batch-query --payload-file /path/to/query.json python3 {baseDir}/scripts/teacher_elf_task.py init-verify --payload-file /path/to/init.json - 批量查询关系(一次最多 50 学员):
请求体格式要点
- 提交任务 必填:
email、taskName、taskType、schoolId、receiverList。 taskType:1-课后服务 2-课前提醒 3-开班提醒 4-首课回访 5-续费沟通 6-其他 7-学习包学情反馈 8-作业任务反馈。receiverList[].receiveType:0-家长 1-本人 2-群聊。receiverList[].sendContentList:支持文本(含占位符#学员姓名#等)、链接(link)、文件(file);链接/文件需按文档传msgType、msgFileSize、msgFileType等。
完整字段与示例见 {baseDir}/references/api.md。
安全与确认
- 写操作(提交任务、初始化关系)前必须明确用户意图并确认。
- 不在日志或回复中输出 appSecret 或完整 token。
- 验签逻辑以对接文档为准;若与脚本实现不一致,需按文档调整脚本或联系接口提供方。