Tool: validate_credentials.py - verifyze Binance API + Telegram Bot Tokens automatisiert (2026-07-10 16:40)

This commit is contained in:
Marc Blatter 2026-07-10 19:46:45 +02:00
parent 4b0cd1457c
commit e3afd5d40e
1 changed files with 105 additions and 0 deletions

105
src/validate_credentials.py Normal file
View File

@ -0,0 +1,105 @@
#!/usr/bin/env python3
"""
Validiere alle Credentials (Binance API + Telegram Bot)
"""
import os
import sys
# Change to bot directory FIRST
os.chdir('/home/marc/bot-deploy')
# Dann .env laden
from dotenv import load_dotenv
load_dotenv(dotenv_path='/home/marc/bot-deploy/.env')
binance_key = os.getenv('BINANCE_API_KEY_LIVE')
binance_secret = os.getenv('BINANCE_API_SECRET_LIVE')
telegram_token = os.getenv('TELEGRAM_BOT_TOKEN')
chat_id = os.getenv('TELEGRAM_CHAT_ID')
print('🔍 VALIDIERE CREDENTIALS...\n')
# Test 1: Binance API
print('1⃣ BINANCE API')
try:
from binance.client import Client
client = Client(binance_key, binance_secret)
# Test read
account = client.get_account()
print(f' ✅ Connected')
# Get balances
balances = [b for b in account['balances'] if float(b['free']) + float(b['locked']) > 0]
usdt = next((b for b in account['balances'] if b['asset'] == 'USDT'), None)
print(f' ✅ Balances gelesen: {len(balances)} coins')
print(f' ✅ USDT: {float(usdt["free"]):.2f} (free) + {float(usdt["locked"]):.2f} (locked)')
# Test: Get symbol info (dry, kein order)
symbol_info = client.get_symbol_info('BTCUSDT')
print(f' ✅ Symbol Info abrufbar')
# Test: Ping
ping = client.ping()
print(f' ✅ API Ping: OK')
print(f' ✅ Authentifizierung: ACTIVE (Keys working)')
except Exception as e:
print(f' ❌ FAILED: {str(e)[:100]}')
sys.exit(1)
# Test 2: Telegram Bot
print('\n2⃣ TELEGRAM BOT')
try:
import requests
url = f'https://api.telegram.org/bot{telegram_token}/getMe'
response = requests.get(url, timeout=10)
if response.status_code != 200:
print(f' ❌ HTTP {response.status_code}')
sys.exit(1)
bot_info = response.json()
if not bot_info.get('ok'):
print(f' ❌ API Error: {bot_info}')
sys.exit(1)
print(f' ✅ Connected')
print(f' ✅ Bot Name: @{bot_info["result"]["username"]}')
print(f' ✅ Bot ID: {bot_info["result"]["id"]}')
# Test send message
send_url = f'https://api.telegram.org/bot{telegram_token}/sendMessage'
payload = {
'chat_id': chat_id,
'text': '✅ Credentials TEST — Alle APIs funktionieren!'
}
send_response = requests.post(send_url, json=payload, timeout=10)
if send_response.status_code == 200:
result = send_response.json()
if result.get('ok'):
msg_id = result['result']['message_id']
print(f' ✅ Test Message versendet (ID: {msg_id})')
else:
print(f' ❌ Send Error: {result}')
sys.exit(1)
else:
print(f' ❌ HTTP {send_response.status_code}')
sys.exit(1)
except Exception as e:
print(f' ❌ FAILED: {str(e)[:100]}')
sys.exit(1)
print('\n' + '='*70)
print('✅ ALLE CREDENTIALS VALIDIERT UND FUNKTIONSFÄHIG!')
print('='*70)
print('\nDetails:')
print(f' BINANCE_API_KEY_LIVE: {len(binance_key)} chars ✅')
print(f' BINANCE_API_SECRET_LIVE: {len(binance_secret)} chars ✅')
print(f' TELEGRAM_BOT_TOKEN: {len(telegram_token)} chars ✅')
print(f' TELEGRAM_CHAT_ID: {chat_id}')