Интерфейс для сервиса MyITMO на Java
RetrofitOkHttpGsonLombok
Добавьте в pom.xml:
<dependencies> <dependency> <groupId>io.github.alllexey123</groupId> <artifactId>my-itmo-api</artifactId> <version>1.2.4</version> </dependency> </dependencies>- Логин через почту/ID и пароль
MyItmo myItmo = new MyItmo(); myItmo.auth("my_cool_id", "my_strong_password");
- Логин через refresh_token (можно получить через F12 -> cookies в браузере)
MyItmo myItmo = new MyItmo(); myItmo.refreshTokens("big_refresh_token");
- Своя реализация Storage (далее)
Логины и пароли не сохраняются, и используются только один раз - при входе. Подробнее: AuthHelper.java
По умолчанию токены хранятся в памяти, рекомендуется создать свою реализацию Storage, чтобы хранить как-то иначе:
MyItmo myItmo = new MyItmo(); myItmo.setStorage(customStorageImpl);Время жизни refreshToken - 30 дней, accessToken - 30мин; если он устареет - токены обновятся.
Методы API доступны через MyItmo#api()
Например, получение расписания на сегодня и завтра:
MyItmo myItmo = new MyItmo(); myItmo.setStorage(storageWithTokens); // или получите токены любым способом выше LocalDate now = LocalDate.now(); MyItmoResponse<List<Schedule>> r = myItmo.api().getPersonalSchedule(now, now.plusDays(1)).execute().body(); List<Schedule> schedules = r.getData();Генерировать QR-код 1-в-1 как приложение можно с помощью io.nayuki/qrcodegen таким образом:
String qrHex = "12345ABC"; QrSegment segment = QrSegment.makeBytes(qrHex.getBytes(StandardCharsets.ISO_8859_1)); QrCode qr = QrCode.encodeSegments(Collections.singletonList(segment), QrCode.Ecc.LOW, 1, 1, -1, false);