Chuyển tới nội dung chính

{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}

Canvas

Tích hợp Canvas LMS - tìm nạp các khóa học và bài tập đã đăng ký bằng cách sử dụng xác thực mã thông báo API.

Siêu dữ liệu kỹ năng

NguồnTùy chọn — cài đặt với
`Hermes skills install official/productivity/canvas
`
Đường dẫn

optional-skills/productivity/canvas ` | | Phiên bản |

1.0.0 ` | | Tác giả | cộng đồng | | Giấy phép | MIT | | Nền tảng | Linux, macOS, Windows | | Thẻ |

Canvas

, `LMS

, `Education

, `Courses

, Assignments |

Tham khảo: đầy đủ SKILL.md

thông tin

Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.

Canvas LMS — Truy cập khóa học & bài tập

Quyền truy cập chỉ đọc vào Canvas LMS để liệt kê các khóa học và bài tập.

Tập lệnh

scripts/canvas_API.py — Python CLI cho lệnh gọi API Canvas

Thiết lập

  1. Đăng nhập vào phiên bản Canvas của bạn trên trình duyệt
  2. Đi tới Tài khoản → Cài đặt (nhấp vào biểu tượng hồ sơ của bạn, sau đó nhấp vào Cài đặt)
  3. Cuộn đến Tích hợp được phê duyệt và nhấp vào + Mã thông báo truy cập mới
  4. Đặt tên cho mã thông báo (ví dụ: "Đại lý Hermes"), đặt thời hạn tùy chọn và nhấp vào Tạo mã thông báo
  5. Sao chép mã thông báo và thêm vào

~/.Hermes/.env

:

` CANVAS_API_TOKEN=your_token_here CANVAS_BASE_URL=https://yourschool.instructure.com

` ``URL cơ sở là bất cứ thứ gì xuất hiện trong trình duyệt của bạn khi bạn đăng nhập vào Canvas (không có dấu gạch chéo ở cuối).

Cách sử dụng

CANVAS="Python $Hermes_HOME/skills/productivity/canvas/scripts/canvas_API.py"

# List all active courses
$CANVAS list_courses --enroLLMent-state active

# List all courses (any state)
$CANVAS list_courses

# List assignments for a specific course
$CANVAS list_assignments 12345

# List assignments ordered by due date
$CANVAS list_assignments 12345 --order-by due_at

`

## Định dạng đầu ra`**list_courses** trả về:

`
`JSON
[\{"id": 12345, "name": "Intro to CS", "course_code": "CS101", "workflow_state": "available", "start_at": "...", "end_at": "..."}]

`
``**list_taskments** trả về:

`
`JSON
[\{"id": 67890, "name": "Homework 1", "due_at": "2025-02-15T23:59:00Z", "points_possible": 100, "submission_types": ["online_upload"], "html_url": "...", "description": "...", "course_id": 12345}]

`
``Lưu ý: Mô tả bài tập được cắt ngắn còn 500 ký tự. Trường
`html_url
` liên kết đến trang bài tập đầy đủ trong Canvas.

## Tham chiếu API (curl)

`bash

# List courses
curl -s -H "Authorization: Bearer $CANVAS_API_TOKEN" \
"$CANVAS_BASE_URL/API/v1/courses?enroLLMent_state=active&per_page=10"

# List assignments for a course
curl -s -H "Authorization: Bearer $CANVAS_API_TOKEN" \
"$CANVAS_BASE_URL/API/v1/courses/COURSE_ID/assignments?per_page=10&order_by=due_at"

`
``Canvas sử dụng tiêu đề
`Link
` để phân trang. Tập lệnh Python xử lý phân trang tự động.

## Quy tắc
- Kỹ năng này **chỉ đọc** — nó chỉ tìm nạp dữ liệu, không bao giờ sửa đổi các khóa học hoặc bài tập
- Trong lần sử dụng đầu tiên, hãy xác minh xác thực bằng cách chạy

$CANVAS list_courses
` — nếu lỗi 401, hãy hướng dẫn người dùng cách thiết lập
- Giới hạn tỷ lệ canvas ở mức ~700 yêu cầu mỗi 10 phút; kiểm tra tiêu đề
`X-Rate-Limit-Remaining
` nếu đạt giới hạn

## Khắc phục sự cố

| Vấn đề | Sửa chữa |
|----------|------|
| 401 trái phép | Mã thông báo không hợp lệ hoặc đã hết hạn — tạo lại trong Cài đặt Canvas |
| 403 Cấm | Mã thông báo thiếu quyền cho khóa học này |
| Danh sách khóa học trống | Hãy thử

--enroLLMent-state active
` hoặc bỏ cờ để xem tất cả các trạng thái |
| Sai tổ chức | Xác minh
`CANVAS_BASE_URL
` khớp với URL trong trình duyệt của bạn |
| Lỗi hết thời gian chờ | Kiểm tra kết nối mạng với phiên bản Canvas của bạn |