Способ создания ботов для 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 запросов. Как именно? Пока сам не знаю. Но я уверен даже в текущем виде эта информация будет вам полезна, так как другой просто нет.
24 комментария