48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
import os
|
||
from dotenv import load_dotenv
|
||
from t_tech.invest import Client
|
||
|
||
# Настройка SSL для российских сертификатов
|
||
os.environ['SSL_CERT_FILE'] = '/etc/ssl/certs/ca-certificates.crt'
|
||
os.environ['GRPC_DEFAULT_SSL_ROOTS_FILE_PATH'] = '/etc/ssl/certs/ca-certificates.crt'
|
||
|
||
load_dotenv("tok.env")
|
||
TOKEN = os.getenv("TINKOFF_TOKEN")
|
||
SBER_UID = "a78b8349-a1dc-447d-9277-1d75826d089a"
|
||
|
||
print("\n--- ПОИСК РЕАЛЬНЫХ ТОРГОВЫХ СЧЕТОВ ---")
|
||
|
||
try:
|
||
with Client(TOKEN, target="invest-public-api.tbank.ru:443") as client:
|
||
# 1. Запрашиваем цену и ВРЕМЯ этой цены из общего потока
|
||
price_resp = client.market_data.get_last_prices(instrument_id=[SBER_UID])
|
||
lp = price_resp.last_prices[0]
|
||
actual_price = lp.price.units + lp.price.nano / 1e9
|
||
price_date = lp.time
|
||
|
||
print(f"🌍 ТЕКУЩАЯ ЦЕНА В API: {actual_price} руб.")
|
||
print(f"📅 ДАТА ЭТОЙ ЦЕНЫ: {price_date.strftime('%Y-%m-%d %H:%M:%S')} UTC")
|
||
|
||
if actual_price < 310:
|
||
print("\n🚨 ВНИМАНИЕ: Сервер все еще выдает СТАРУЮ цену (симуляция).")
|
||
else:
|
||
print("\n✅ API выдает АКТУАЛЬНУЮ рыночную цену!")
|
||
|
||
# 2. Получаем список всех доступных счетов
|
||
accounts = client.users.get_accounts().accounts
|
||
print("\n--- СПИСОК ВАШИХ СЧЕТОВ ---")
|
||
for acc in accounts:
|
||
try:
|
||
# Проверяем баланс каждого счета
|
||
portfolio = client.operations.get_portfolio(account_id=acc.id)
|
||
balance = portfolio.total_amount_currencies.units
|
||
except:
|
||
balance = "Ошибка доступа"
|
||
|
||
print(f"🔹 Имя: {acc.name:15} | ID: {acc.id}")
|
||
print(f" Тип: {acc.type.name:20} | Баланс: {balance} руб.")
|
||
print("-" * 50)
|
||
|
||
except Exception as e:
|
||
print(f"\n❌ ОШИБКА: {e}")
|