И снова, эпик.
Перед новым годом, решиле Задрочить его.
Глядите, он вернёт, с перевёртышами и тогда у всех кто эпик нагнуть хотел, станет ещё проблемней задача.
Её можно Решать, чисто Кликами, главное что бы Сервис который используете, не был перегружен ( быстрее решал ) ну и скок мною писано, что если Ботность, то Пустая трата денег на Сервисы по разгадыванию Каптч.
Как мне получить ouath2 токен
-
У меня есть купленные аккаунты outlook, и я хотел использовать ouath2 (access token) чтобы использовать модуль почта и получить содержание последнего письма.
В комплекте к купленным аккаунтам у меня идет кажется refresh токен. Можно ли как то из refresh token сделать access токен прямо в bas?Перерыл несколько тем, но четкого ответа не нашел, и не понимаю как это сделать
-
короче сделал. Кому интересно просто через python сделал
import requests
Чтение данных из файла, где каждый токен находится на новой строке
def get_tokens_from_file(filename="accounts1.txt"):
with open(filename, 'r', encoding='utf-8', errors='ignore') as file:
return [line.strip() for line in file.readlines()]Чтение client_id из файла
def get_client_ids_from_file(filename="accounts2.txt"):
with open(filename, 'r', encoding='utf-8', errors='ignore') as file:
return [line.strip() for line in file.readlines()]Функция для получения access token по refresh token
def get_access_token(client_id, refresh_token):
url = "https://login.microsoftonline.com/common/oauth2/v2.0/token"data = { "client_id": client_id, "grant_type": "refresh_token", "refresh_token": refresh_token, "scope": "https://outlook.office.com/.default" } response = requests.post(url, data=data) if response.status_code == 200: return response.json().get("access_token") else: print(f"Ошибка при получении токена: {response.json()}") return NoneФункция для записи токенов в файл
def save_token_to_file(access_token, filename="tokens.txt"):
with open(filename, 'a', encoding='utf-8', errors='ignore') as file:
file.write(f"{access_token}\n") # Записываем только сам токен
print(f"Token записан в {filename}")Основная функция
def main():
refresh_tokens = get_tokens_from_file("accounts1.txt") # Чтение refresh токенов
client_ids = get_client_ids_from_file("accounts2.txt") # Чтение client_id# Проверяем, что количество токенов и client_id совпадает if len(refresh_tokens) != len(client_ids): print("Количество refresh токенов и client_id не совпадает!") return # Перебор аккаунтов for i in range(len(refresh_tokens)): client_id = client_ids[i] refresh_token = refresh_tokens[i] print(f"Получение токена для аккаунта {i + 1}...") access_token = get_access_token(client_id, refresh_token) if access_token: print(f"Access token для аккаунта {i + 1}: {access_token}") save_token_to_file(access_token) # Запись токена в файл else: print(f"Не удалось получить токен для аккаунта {i + 1}")if name == "main":
main()используется текстовый файл accounts1.txt в котором сохраняется все refresh токены
accounts2.txt где сохраняются clientid
и tokens.txt где сохраняются токены