Merhabalar R10 halkı telegram üzerinden bot geliştiriyorum botun amacı kullanıcı giriş yapıp örnek veriyorum otomatik mesaj botu alıcak ama benim sanal sunucumda çalışıcak her cihazdan çalışıcak botun herşeyi hazır altyapısı ödeme kısımları herşeyi hazırladım

ama 5 gündür beni illallah ettiren bir sıkıntı var kodu şöyle atayim




async def connect_and_request_code(api_id: int, api_hash: str, phone: str, session_name: str):
client = TelegramClient(session_name, api_id, api_hash)
await client.connect()
if await client.is_user_authorized():
return client, "already_logged_in", None
sent_code = await client.send_code_request(phone)
return client, "code_needed", getattr(sent_code, "phone_code_hash", None)

async def submit_auth_code(client: TelegramClient, phone: str, code: str, phone_code_hash: str | None):
try:
await client.sign_in(phone=phone, code=code, phone_code_hash=phone_code_hash)
return "ok"
except SessionPasswordNeededError:
return "password_needed"

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
...
if step == "phone":
phone = normalize_phone(text)
context.user_data["phone"] = phone
api_id = context.user_data.get("api_id")
api_hash = context.user_data.get("api_hash")
session_name = str(SESSION_DIR / f"session_{user.id}_{phone.replace('+', '')}.session")

if context.user_data.get("pending_client"):
await cleanup_pending_client(context)

try:
client, status, phone_code_hash = await connect_and_request_code(int(api_id), api_hash, phone, session_name)
context.user_data["pending_client"] = client
context.user_data["pending_phone"] = phone
context.user_data["pending_phone_code_hash"] = phone_code_hash

if status == "already_logged_in":
save_account_credentials(user.id, int(api_id), api_hash, phone)
mark_user_linked(user.id)
await update.message.reply_text("✅ Telegram hesabınız zaten bağlıydı, profil kaydı güncellendi.")
await clear_pending_auth(context)
else:
context.user_data["auth_step"] = "otp"
await update.message.reply_text("📲 Telefonunuza gelen 5 haneli doğrulama kodunu yazın.")
except FloodWaitError as exc:
logger.exception("Flood wait sırasında bağlanma hatası: %s", exc)
await update.message.reply_text(f"⚠️ Telegram limit bekleme gerektiriyor. {exc.seconds} saniye bekleyip tekrar deneyin.")
await clear_pending_auth(context)
except Exception as exc:
logger.exception("Telegram bağlama hatası: %s", exc)
await update.message.reply_text("⚠️ Bağlantı sırasında hata oluştu. API ID/API HASH/telefonu kontrol edin.")
await clear_pending_auth(context)
return

if step == "otp":
client = context.user_data.get("pending_client")
phone = context.user_data.get("pending_phone")
phone_code_hash = context.user_data.get("pending_phone_code_hash")
code = text.strip().replace(" ", "")
if not client:
await update.message.reply_text("⚠️ Oturum yeniden başlatılmalı. Lütfen tekrar bağlanma işlemini başlatın.")
return

try:
result = await submit_auth_code(client, phone, code, phone_code_hash)
if result == "ok":
save_account_credentials(user.id, context.user_data.get("api_id"), context.user_data.get("api_hash"), phone)
mark_user_linked(user.id)
await update.message.reply_text("✅ Telegram hesabınız başarıyla bağlandı.")
await clear_pending_auth(context)
else:
context.user_data["auth_step"] = "password"
await update.message.reply_text("🔐 İki adımlı doğrulama parolanızı yazın.")
except PhoneCodeExpiredError:
logger.exception("OTP süresi doldu: %s", code)
await update.message.reply_text(
"⚠️ Kodun süresi doldu. Lütfen /start ile yeniden başlatıp yeni kod isteyin."
)
await clear_pending_auth(context)
except PhoneCodeInvalidError:
logger.exception("OTP kodu geçersiz: %s", code)
await update.message.reply_text(
"⚠️ Kod hatalı. Yeni kod GÖNDERMEDİM — az önce gelen kodu tekrar, "
"rakamlar arasına boşluk koymadan doğru şekilde yazın."
)
except Exception as exc:
logger.exception("OTP doğrulama hatası: %s", exc)
await update.message.reply_text("⚠️ Kod doğrulanamadı. Lütfen kodu kontrol edip tekrar deneyin.")
return



hiçbir şekilde giriş yapamıyorum hesabımı bağlıyamıyorum 2 hesap denedim ipden kaynaklıdır spama girmişimdir dedim sanal sunucumu başlattım ordan apayrı hesapla denedim yok illalah ettirdi telegram çözümünü bilen varmı kodu düzeltip özelden atıcak varmı herşey hazır burayı yapamıyorum