Получение курсов и заданий из системы Canvas LMS

Этот скилл предоставляет доступ только для чтения к данным Canvas LMS, позволяя перечислять курсы и задания через API Canvas.

OpenClaw Hermes Средний Скопировали: 0
1 ресурс

Что понадобится

  • Для работы требуются токен API Canvas и базовый URL, которые нужно указать в переменных окружения CANVAS_API_TOKEN и CANVAS_BASE_URL. Скилл работает на Linux, macOS и Windows.
  • Базовый URL — это адрес, который отображается в вашем браузере при входе в Canvas, без завершающего слэша.

Как применить

Описания заданий усекаются до 500 символов, а поле html_url содержит ссылку на полную страницу задания в Canvas.

Canvas ограничивает количество запросов примерно до 700 за 10 минут; проверьте заголовок X-Rate-Limit-Remaining, если вы достигнете этого лимита.

Если появляется ошибка 401 Unauthorized, значит токен недействителен или истек — сгенерируйте новый в настройках Canvas. При ошибке 403 Forbidden токен не имеет прав на доступ к этому курсу. Если список курсов пуст, попробуйте параметр --enrollment-state active или опустите его, чтобы увидеть все состояния. Если отображается неправильное учебное заведение, убедитесь, что CANVAS_BASE_URL совпадает с URL в вашем браузере; ошибки времени ожидания означают необходимость проверить сетевое соединение с экземпляром Canvas.

  1. Войдите в свой экземпляр Canvas через браузер.
  2. Перейдите в раздел «Учётная запись» → «Настройки» (нажмите на значок профиля, затем «Настройки»).
  3. Прокрутите страницу до раздела «Разрешённые интеграции» и нажмите «+ Новый токен доступа».
  4. Назовите токен (например, «Hermes Agent»), укажите необязательный срок действия и нажмите «Сгенерировать токен».
  5. Скопируйте токен и добавьте его в ${HERMES_HOME:-~/.hermes}/.env.
CANVAS_API_TOKEN=your_token_here
CANVAS_BASE_URL=https://yourschool.instructure.com

Примеры использования: перечислить все активные курсы с параметром --enrollment-state active, перечислить все курсы в любом состоянии, перечислить задания для конкретного ID курса или отсортировать задания по дате дедлайна с помощью параметра --order-by due_at.

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

Формат вывода: команда list_courses возвращает информацию о каждом курсе: id, name, course_code, workflow_state, start_at и end_at.

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

[{"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}]

Справочник по API (curl): для перечисления курсов используйте запрос GET с токеном Bearer к эндпоинту courses, а для перечисления заданий — запрос GET к эндпоинту assignments соответствующего курса, используя параметры per_page, order_by и enrollment_state.

# 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 list_courses; если возникает ошибка 401, помогите пользователю с настройкой.

Источник: nousresearch/hermes-agent и участники проекта. Лицензия: MIT.

Copyright (c) 2025 Nous Research

Перевод и редакционная адаптация: ClawCases.

>Ресурсы

>Похожие юзкейсы

Продуктивность

Командная строка Apple Notes

Управляйте заметками Apple непосредственно из терминала с помощью CLI memo: создавайте, просматривайте, редактируйте, удаляйте, искайте заметки, перемещайте их между папками и экспортируйте в формате HTML или Markdown.

OpenClaw Hermes Средний
Автоматизация Интеграции Продуктивность

Автоматизируйте интерфейс macOS с помощью CLI-инструмента Peekaboo

Используйте Peekaboo для анализа интерфейса macOS, взаимодействия с нужным элементом и проверки результата. Примеры используют синтаксис версии 4; ознакомьтесь с актуальной документацией и справкой установленной команды. Для старых версий следуйте инструкциям соответствующей версии.

OpenClaw Средний
Разработка

Используйте Chroma — открытую базу данных эмбеддингов для RAG и семантического поиска.

Chroma — это база данных эмбеддингов, разработанная специально для ИИ, для создания приложений на основе LLM с возможностью хранения памяти, таких как конвейеры RAG и семантический поиск.

Hermes OpenClaw Средний

>Ещё на этом уровне: Средний