VISH 应用——俄罗斯交通大学课表

面向所有学院学生和教职工的俄罗斯交通大学课表。按天和按周查看自己班级和任意教师的课表、此刻的空闲教室、教室、班级和教师的使用情况、课表变更通知以及课表人工智能助手。

学院

俄罗斯交通大学应用涵盖五个学院:高等工程学院、民航学院、道路管理学院、先进工程学院“高铁学院”和国际交通运输学院。在任何学院,班级课表和教师课表的查找方式都相同。

VISH 应用的功能
栏目
指南

开发者常见问题

更新于 27.10.2026

对那些为......编写程序的人最常出现的问题的简短回答VISH. 在2026年10月23日与摊位d1和生产进行了检查。

查阅资料

我需要一把钥匙来阅读时间表吗? 非也。. 时间表,小组,教师,教室,课堂笔记和日历提要对所有人开放。 你需要一把钥匙来代表你自己行动,看看身份验证:API和OAuth密钥.

我在哪里可以得到钥匙? 在应用程序中,在“开发人员”页,详见API和访问密钥页。

钥匙亮了-我该怎么办? 立即“重新”-在“开发人员”页面:旧行在同一秒停止工作,权利和截止日期保持不变。

为什么密钥得到403 FORBIDDEN,即使我有这个权利? 密钥只允许在发布时标记的内容。 释放具有所需权限的密钥-请参阅访问权限(RBAC).

我可以阅读学生的个人笔记还是我自己的笔记? 非也。. 个人笔记只对应用程序中的人开放;密钥和OAuth令牌都不会收到它们。

来自浏览器的请求

是否可以从您的网站页面调用API? 其他人网站上的浏览器允许您阅读VISH仅在两种情况下响应(CORS):请求携带密钥(X-Api-Key)或者它是协议“登入地址VISH” (/oauth/token, /oauth/userinfo, /oauth/revoke, /oauth/introspect,设置文档和签名密钥)。 没有密钥的公共方法和具有OAuth令牌的方法(/schedule如果您无法从其他网站的页面读取它们,请从您的服务器调用它们。 您不能将密钥保留在页面代码中:任何用户都会看到它。

从移动或桌面应用程序? 没有CORS,但应用程序中的密钥对拆解它的人仍然可见。 适用于人们进入的应用程序, “透过VISH”:在移动,https返回地址(应用程序链接,通用链接),在桌面 — http://127.0.0.1:<порт>/….

数据资料

为什么这对夫妇的时间08:30:00.000Z八点半? 上课时间是莫斯科时间,写在字段与后缀Z. 采取小时和分钟,因为他们是。 在日历提要中,时间已经与时区有关。

我如何找出当前的一周及其平价? GET /app-config → currentWeek.number和currentWeek.parity(1或2)。 还有一个呼叫网格和学期日期-下面的一个例子。

我如何找到一个团体? GET /groups?search=шад -对于代码的一部分。 代码(ШАД-111)也适用于GET /schedule?group=….

是id在d1和生产一样? 非也。. 组代码、教师姓名和教室名称匹配。 如果您使用两个摊位,请保留它们。

数据来自哪里以及最近的数据? 从时间表俄罗斯交通大学 (MIIT)至miit.ru ;研究所的编辑立即可见,现场isOverridden标志着学院的班级改变了.

通知书

有没有webhook? 還沒有。. 订阅日历提要或轮询更改提要-请参阅通知及日历.

我有429-我该怎么办? 等待,只要它在消息中说,并重复;如果有重复的拒绝,加倍暂停。 限制在开发人员:开始页。

“透过VISH”

他为生产工作吗? 截至2026年10月23日,不,仅在d1上。 它将与即将发布的版本之一一起出现;请留意API更改页。

Можно ли запросить часть разрешений? Приложение запрашивает нужные scope, а человек разрешает весь запрос или отказывает целиком.

为什么是sub在我的两个应用程序中有一个人不同? 这就是它的意图: sub是永久的一对夫妇“人-一个应用程序”,并且不同的应用程序无法匹配其用户。

其他

有SDK吗? 非也。. 客户端可以从OpenAPI展台生成(/documentation/json)使用任何OpenAPI3生成器,或者您可以手动编写查询,如本节中的示例所示。

如何报告API错误? 通过“请求”在应用程序-见上诉. 命名方法、地址和requestId从响应(它也在标题中X-Request-Id). 关于漏洞-由/.well-known/security.txt.

例如:什么是当前的一周和夫妇

// The current week and parity, and which pair is on now, from /app-config.
const API = process.env.VISH_API ?? 'https://d1.vish-app.ru/api/v1'

const response = await fetch(`${API}/app-config`)
if (!response.ok) throw new Error(`HTTP ${response.status}`)
const { semester, currentWeek, schedule } = await response.json()
if (![1, 2].includes(currentWeek?.parity) || !schedule?.lessonSlots?.length) throw new Error('unexpected /app-config')

// Wall-clock Moscow time, the same convention as the timetable.
const now = new Date(Date.now() + 3 * 60 * 60 * 1000).toISOString().slice(11, 16)
const pair = schedule.lessonSlots.find((slot) => slot.startTime <= now && now < slot.endTime)

console.log(`${semester.name}: week ${currentWeek.number}, ${currentWeek.parity === 1 ? 'odd' : 'even'}`)
console.log(pair ? `now (${now} MSK): pair ${pair.number}, ${pair.startTime}–${pair.endTime}` : `now (${now} MSK): no pair`)

试一试请求

只有带锁的方法需要密钥。密钥只保存在本页:不会被存储,只作为本次请求的请求头发送,离开页面后即被清除。 如何获取密钥

验证:2026-10,PWA aa337c45,平台bff65fce._