lentryd / NetSchoolApi

Асинхронный API-враппер для 'Сетевой Город. Образование' на Node.js.
https://lentryd.su/NetSchoolApi/
MIT License
23 stars 1 forks source link

status: 403 #14

Closed agran closed 9 months ago

agran commented 9 months ago
node ocenTop.js
 INFO  Класс пользователя ИМЯ создан

Error: Fetch failed.
        - url: https://sgo.rso23.ru/webapi/schools/search
        - status: 403
    at Client.<anonymous> (/var/www/ocenki/data/node_modules/netschoolapi/dist/classes/Client/index.js:109:23)
    at Generator.next (<anonymous>)
    at fulfilled (/var/www/ocenki/data/node_modules/netschoolapi/dist/classes/Client/index.js:5:58)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
 ERROR  Ошибка в коде привела к закрытию программы
Error: Не удалось получить список школ
    at /var/www/ocenki/data/node_modules/netschoolapi/dist/methods/logIn/methods/schoolInfo.js:23:19
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
 DONE  Сеанс ИМЯ успешно закрыт

Выдаёт такое. Через браузер с этого IP и логина подключается.

lentryd commented 9 months ago

Привет! Как производишь авторизацию в библиотеке? Значение school - число или название?

agran commented 9 months ago

Число.

agran commented 9 months ago

Если задавать строкой название, то такая же ошибка.

lentryd commented 9 months ago

Да, там проблема с тем, что раньше можно было получить список всех школ по адресу /webapi/schools/search, а теперь разрабы системы решили запретит доступ к полному списку и теперь выводятся только по частичному совпадению названия /webapi/schools/search?name=<название>.

Пока для работы с либой можешь сделать некоторые изменения в коде:

  1. В корне проекта найди файл node_modules/netschoolapi/dist/methods/logIn/methods/schoolInfo.js
  2. Изменить ссылку schools/search на schools/search?name=<название школы частично, можно даже одну букву> (это примерно 16 строка кода)

Это вроде должно тебе помочь

agran commented 9 months ago

спасибо, помогло

lentryd commented 9 months ago

@agran можешь попробовать поменять /webapi/schools/search?name=<название> на /webapi/schools/search?name=У

agran commented 9 months ago

Что значит У?

lentryd commented 9 months ago

Просто русская буква у. Она встречается в большинстве названий школ. И хотелось бы понять будет ли работать такой способ

agran commented 9 months ago

Можно требовать задавать название школы в текстовом виде и в этом поиске использовать первую букву заданного названия.

lentryd commented 9 months ago

Ошибка исправлена в версии 1.8.2