通过 classcharts-api JavaScript 库查询并交互 ClassCharts(英国教育课堂管理)平台。在用户提及 ClassCharts、学校行为时使用。
ClassCharts API (JavaScript/TypeScript).是一项面向实际任务的技能,主要用于ClassCharts是英国的一个教育课堂管理平台. 这种技能使用非正式的ClassCharts-api JS图书馆来获取作业,行为,tim.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
ClassCharts 是英国教育领域的课堂管理平台。本技能使用非官方的 classcharts-api JavaScript 库,获取家庭作业、行为记录、课表、留校处分、出勤情况、学校公告、徽章等数据。支持 家长 和 学生 两种身份认证方式。
重要提示:该 API 属于非官方接口。切勿在提示词、日志或已提交的代码中硬编码凭据。请使用环境变量或安全的密钥存储服务。
npm install classcharts-api
运行要求:Node.js 20+ 或 Deno
支持两类客户端,登录流程不同:
家长使用邮箱和密码登录,可访问所有已关联的学生档案。
import { ParentClient } from "classcharts-api";
const client = new ParentClient(
process.env.CLASSCHARTS_EMAIL!,
process.env.CLASSCHARTS_PASSWORD!,
);
await client.login();
// 默认操作第一个学生;如需切换,请调用 selectPupil
const pupils = client.pupils; // 或 await client.getPupils()
client.selectPupil(pupils[1].id); // 若有多个子女
学生使用 ClassCharts 学生代码及出生日期登录。
import { StudentClient } from "classcharts-api";
// 出生日期格式必须为 DD/MM/YYYY
const client = new StudentClient(
process.env.CLASSCHARTS_CODE!, // 例如 "ABCD1234"
"01/01/2010",
);
await client.login();
| 使用场景 | 格式 | 示例 |
|---|---|---|
| API 参数(from、to、date) | YYYY-MM-DD |
"2024-03-10" |
| 学生出生日期(登录时) | DD/MM/YYYY |
"01/01/2010" |
getStudentCode 的 dateOfBirth 参数 |
YYYY-MM-DD |
"2010-01-01" |
所有方法均需先执行 await client.login()。会话将在 3 分钟后自动续期。
| 方法 | 参数选项 | 说明 |
|---|---|---|
getStudentInfo() |
— | 学生个人资料及元数据 |
getActivity({ from, to, last_id? }) |
日期格式为 YYYY-MM-DD,支持可选分页 |
活动动态流(分页返回) |
getFullActivity({ from, to }) |
日期格式为 YYYY-MM-DD |
指定日期区间内的全部活动(自动分页) |
getBehaviour({ from?, to? }) |
日期格式为 YYYY-MM-DD |
行为积分时间线及对应原因 |
getHomeworks({ from?, to?, displayDate? }) |
日期参数;displayDate 可设为 "due_date" 或 "issue_date" |
家庭作业列表 |
getLessons({ date }) |
date:格式为 YYYY-MM-DD |
指定日期的课表 |
getBadges() |
— | 已获得的徽章 |
getAnnouncements() |
— | 学校公告 |
getDetentions() |
— | 留校处分记录 |
getAttendance({ from, to }) |
日期格式为 YYYY-MM-DD |
出勤记录 |
getPupilFields() |
— | 学生自定义字段/统计项 |
| 方法 | 说明 |
|---|---|
getPupils() |
列出与当前家长账户关联的所有学生 |
selectPupil(pupilId) |
设置后续请求所操作的目标学生 |
changePassword(current, new) |
修改家长账户密码 |
| 方法 | 说明 |
|---|---|
getRewards() |
奖励商店商品列表及当前余额 |
purchaseReward(itemId) |
从奖励商店购买指定商品 |
getStudentCode({ dateOfBirth }) |
获取学生代码(dateOfBirth 格式为 YYYY-MM-DD) |
// 指定日期范围内的家庭作业
const homeworks = await client.getHomeworks({
from: "2024-03-01",
to: "2024-03-31",
displayDate: "due_date",
});
// 今日课表
const today = new Date().toISOString().slice(0, 10); // YYYY-MM-DD
const lessons = await client.getLessons({ date: today });
// 行为记录摘要
const behaviour = await client.getBehaviour({
from: "2024-01-01",
to: "2024-03-10",
});
// 学生端:列出奖励商店并完成购买
const rewards = await client.getRewards();
const purchase = await client.purchaseReward(rewards.data[0].id);
所有响应均遵循 ClassChartsResponse 类型定义:
{
success: 1,
data: T, // 根据接口不同,为数组或对象
meta: M, // 包含会话 ID、日期、计数等元信息
error?: string
}
当 success === 0 时,将抛出错误。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章