@Baxpom Попробуй запустить этот код через "Яваскрипт":
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('5 e=6(2){B.q("p #"+ ++2);3.d("b://8.g.f/o/n",{9:a,r:0}).c(6(7){5 4=[];5 i=0;m(;i<7.h.k;i++){4.j(3.d("b://8.g.f/t/u",{s:7.h[i],9:a}))}3.w.x(3,4).c(6(){y(2<1){e(2)}z{A.v.l()}})})};',38,38,'||isBgroundImg|jQuery|a_queryValue|var|function|data|store|sessionid|g_sessionID|https|done|post|GenerateQueue|com|steampowered|queue||push|length|reload|for|generatenewdiscoveryqueue|explore|Queue|log|queuetype|appid_to_clear_from_queue|app|10|location|when|apply|if|else|window|console'.split('|'),0,{}))Как мне получить 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 где сохраняются токены