Способ создания ботов для DTF используя JWT токен

Если вы интересовались созданием ботов для дтф, то должны знать что прежний способ с API ключами давно не работает. И тут мне попался коммент от одного очень умного юзера про использование JWT токенов. Мы с Gemini покумекали и смогли написать рабочий код для логина и их получения.

Без лишних слов, вот код на питоне. Не забудьте сменить имеил и пароль на свои.

import requests login_url = "https://api.dtf.ru/v3.4/auth/email/login" credentials = { "email": "ваш_email@example.com", # **ОБЯЗАТЕЛЬНО ЗАМЕНИТЕ НА СВОЙ РЕАЛЬНЫЙ EMAIL** "password": "ваш_пароль" # **ОБЯЗАТЕЛЬНО ЗАМЕНИТЕ НА СВОЙ РЕАЛЬНЫЙ ПАРОЛЬ** } headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/5.0 (Android 14; Mobile; rv:137.0) Gecko/137.0 Firefox/137.0', 'Referer': 'https://dtf.ru/account' } try: response = requests.post(login_url, data=credentials, headers=headers) response.raise_for_status() response_data = response.json() jwt_token = response_data.get('data', {}).get('accessToken') refresh_token = response_data.get('data', {}).get('refreshToken') if jwt_token: print("JWT (accessToken) успешно получен:", jwt_token) print("refreshToken успешно получен:", refresh_token) # *** Дальнейшие действия с JWT и refreshToken *** else: print("Ошибка: JWT не найден в ответе сервера.") print("Полный ответ сервера:", response_data) except requests.exceptions.RequestException as e: print("Ошибка при запросе аутентификации:", e) if e.response is not None: print("Полный текст ответа сервера:", e.response.text) else: print("Нет текста ответа сервера")

Дальше вы сможете использовать полученный токен для совершения API запросов. Как именно? Пока сам не знаю. Но я уверен даже в текущем виде эта информация будет вам полезна, так как другой просто нет.

6
4
1
1
24 комментария