Telegram: bot token va akkaunt uchun api_id/api_hash
Telegram'ga ikki yo'l bilan ulanasiz. Bot — Bot API orqali, @BotFather'dagi /newbot bergan token bilan: u faqat botlarga ruxsat etilganini ko'radi va yangilanishlarni webhook yoki polling orqali oladi. Akkaunt — MTProto orqali: my.telegram.org'da app ro'yxatdan o'tkazib api_id va api_hash olasiz, keyin telefon raqam, kod va kerak bo'lsa 2FA parol bilan kirasiz.
Yangilangan:
Bot yoki akkaunt: qaysi biri kerak?
Mijozlar bilan avtomatlashtirish uchun bot: javoblar, bildirishnomalar, kanalga post, guruh moderatsiyasi — rasmiy, xavfsiz va faqat token kerak. Bot qila olmaydigan ish uchun akkaunt (MTProto): suhbatlar tarixini o'qish, guruh a'zolari ro'yxati, haqiqiy foydalanuvchi nomidan ishlash. Xavfi ham katta: norasmiy API klientidan kirgan akkauntlar kuzatuvga olinadi, spam va flood uchun esa umrbod bloklanadi.
Bot va akkaunt farqi
| Bot (Bot API) | Akkaunt (MTProto) | |
|---|---|---|
| Kalitlar | @BotFather bergan token | my.telegram.org'dan api_id + api_hash va telefon bilan login |
| Kirish | Yo'q — token yetarli | Telefon → kod → 2FA parol (yoqilgan bo'lsa) |
| Guruhdagi xabarlar | Privacy mode'da faqat buyruqlar, javoblar va h.k. (o'chirilmasa yoki admin bo'lmasa) | Foydalanuvchi ko'rgan hamma narsa |
| Yangilanishlar | Webhook (setWebhook) yoki getUpdates — ikkalasi birga emas | Ulangan klient sessiyasi |
| Socialift kabineti | Ulanishlar → “Telegram bot” (kalit kerak emas) | Kalitlar → “Telegram API (my.telegram.org)” + Ulanishlar → “Telegram akkaunt” |
| Python SDK | Telegram(token=...) | TelegramAccount(api_id=..., api_hash=..., session=...), pip install "socialift[telegram]" |
| Nimani sir saqlash kerak | Token | api_hash va sessiya satri |
Telegram bot yaratish va token olish
@BotFather'da /newbot yuboring
Telegram'da @BotFather'ni oching va
/newbotbuyrug'ini yuboring.Nom va username tanlang
Nom kontakt ma'lumotlarida ko'rinadi. Username 5–32 belgi, lotin harflari, raqamlar va pastki chiziq bo'lishi va
botbilan tugashi kerak (masalan,dokon_yordam_bot).Token'ni saqlang
BotFather
110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawko'rinishidagi token beradi. Uni bilgan har kim botni boshqara oladi — muhit o'zgaruvchisida saqlang. Sizib chiqsa, BotFather'da/tokenbilan yangisini oling.Guruh uchun privacy mode'ni sozlang
Standart holatda bot privacy mode'da: guruhda faqat unga yo'naltirilgan buyruqlar, unga javoblar, xizmat xabarlarini oladi. Hamma xabarni ko'rishi kerak bo'lsa —
/setprivacy→ Disable, keyin botni guruhdan chiqarib qayta qo'shing. Admin botlar hamma xabarni baribir oladi.Webhook o'rnating
setWebhookHTTPS manzil va 443, 80, 88 yoki 8443 portni talab qiladi.secret_tokenbering (1–256 belgi:A-Z,a-z,0-9,_,-) — Telegram uni har so'rovdaX-Telegram-Bot-Api-Secret-Tokensarlavhasida qaytaradi. Webhook o'rnatilgan bo'lsagetUpdatesishlamaydi; olinmagan yangilanishlar 24 soatdan ortiq saqlanmaydi.
api_id va api_hash olish hamda akkauntga kirish
Rasmiy ilovada akkaunt oching
api_id olish uchun rasmiy Telegram ilovasida ro'yxatdan o'tgan akkaunt kerak.
my.telegram.org'da app ro'yxatdan o'tkazing
my.telegram.org'ga telefon raqamingiz bilan kiring → API development tools → formani to'ldiring. Hozircha bitta telefon raqamiga faqat bitta api_id bog'lanadi.
api_id va api_hash'ni ko'chiring
api_id— raqam,api_hash— 32 ta hex belgi. api_hash'ni hech kimga ko'rsatmang: u bilan sizning ilovangiz nomidan login qilish mumkin.Telefon, kod va 2FA bilan kiring
auth.sendCodekod yuboradi: u ko'pincha Telegram ilovasining o'ziga xizmat xabari bo'lib keladi, SMS, qo'ng'iroq yoki boshqa usulda ham kelishi mumkin. Kodphone_code_hashbilanauth.signInga beriladi. Akkauntda ikki bosqichli parol yoqilgan bo'lsaSESSION_PASSWORD_NEEDEDqaytadi — keyin parol bilan kiriladi. Boshqa seanslarga yangi kirish haqida bildirishnoma boradi.Sessiyani sir saqlang
Kirgandan keyingi sessiya satri parolga teng: uni shifrlab saqlang. Keyingi safar u bilan kod so'ralmasdan ulanasiz.
Telegram'ni Socialift kabinetiga ulash
Botni ulang
“Ulanishlar” → “Telegram bot” kartasiga token'ni qo'yib “Botni ulash” ni bosing. Socialift token'ni darhol
getMebilan tekshiradi — yaroqsizi saqlanmaydi. Privacy mode yoqilgan bo'lsa ogohlantirish chiqadi. Bitta bot faqat bitta Socialift foydalanuvchisiga ulanadi. Bot uchun Kalitlar'da hech narsa kerak emas.Kerak bo'lsa bot webhook'ini Socialift'ga yo'naltiring
Playground'dagi “Webhook va universal chaqiruv” bo'limi bot webhook'ini Socialift serveriga har bir bot uchun alohida
secret_tokenbilan o'rnatadi. Botda bitta webhook manzili bo'ladi: bu sizning serveringiz o'rnatgan manzilni almashtiradi (va aksincha).Akkaunt uchun kalit qo'ying
“Kalitlar” → “Telegram API (my.telegram.org)” kartasiga
api_idvaapi_hashni yozib “Saqlash va tekshirish” ni bosing. Socialift formatni tekshiradi va MTProtoauth.exportLoginTokenbilan juftlikni Telegram'da sinaydi — telefon so'ralmaydi;API_ID_INVALIDbo'lsa kalit rad etiladi. O'z kalitingiz bo'lmasa, mavjud bo'lsa Socialift kaliti ishlatiladi.Akkauntni ulang
“Ulanishlar” → “Telegram akkaunt”: telefon raqam (
+998901234567) → “Kod yuborish” → kod (odatda Telegram ilovasiga keladi, SMS emas) → “Tasdiqlash” → 2FA yoqilgan bo'lsa parol → “Kirish”. Oraliq login holati taxminan 10 daqiqa yashaydi.Uzish
Akkaunt uchun “Uzish” Telegram tomonida ham seansni tugatadi — sessiya nusxasi sizib chiqqan bo'lsa ham u endi ishlamaydi.
Bot: token va webhook Python SDK'da
Telegram.from_env() TELEGRAM_BOT_TOKEN ni o'qiydi.
import asyncio
import os
from socialift import Telegram
async def main() -> None:
# TELEGRAM_BOT_TOKEN, SOCIALIFT_LICENSE_KEY
async with Telegram.from_env() as bot:
me = await bot.get_me() # token to'g'riligini tekshirishning eng arzon yo'li
print(me["username"], me.get("can_read_all_group_messages"))
await bot.set_webhook(
"https://siz.uz/tg",
secret_token=os.environ["TG_WEBHOOK_SECRET"],
allowed_updates=["message"],
)
asyncio.run(main())Aniq ko'rinishda: Telegram(token="123456789:AA..."). Kelgan so'rovni socialift.webhooks.verify_telegram_request(headers, secret_token) bilan tekshiring — Telegram tanani imzolamaydi, himoya faqat shu sarlavha.
Akkaunt: api_id, api_hash va login Python SDK'da
pip install "socialift[telegram]" kerak. TelegramAccount.from_env() TELEGRAM_API_ID, TELEGRAM_API_HASH va TELEGRAM_SESSION ni o'qiydi.
import asyncio
import os
from getpass import getpass
from socialift import TelegramAccount
async def main() -> None:
phone = "+998901234567"
async with TelegramAccount(api_id=os.environ["TELEGRAM_API_ID"],
api_hash=os.environ["TELEGRAM_API_HASH"]) as tg:
sent = await tg.send_code(phone)
result = await tg.sign_in(phone, code=input("Kod: "), phone_code_hash=sent["phone_code_hash"])
if result.get("two_factor_required"):
await tg.sign_in_password(getpass("2FA parol: "))
print(tg.export_session()) # parolga teng — shifrlab saqlang
asyncio.run(main())Keyingi ishga tushirishda: TelegramAccount(api_id=..., api_hash=..., session=saqlangan_sessiya) — kod so'ralmaydi.
Ko'p uchraydigan xatolar
- Bot token kodda, repozitoriyda yoki log'da qolgan.
- Bot guruhda xabarlarni ko'rmayapti — privacy mode yoqilgan yoki
/setprivacydan keyin bot guruhga qayta qo'shilmagan. - Webhook o'rnatilgan holda
getUpdateschaqirilyapti. - Webhook
secret_tokensiz — manzilni bilgan har kim soxta yangilanish yubora oladi. - Webhook qo'llab-quvvatlanmaydigan portda yoki HTTP'da.
- Bitta bot uchun webhook ham o'z serveringizda, ham Socialift'da o'rnatilgan — oxirgi
setWebhookg'olib. - api_hash ochiq joyda yoki sessiya satri shifrlanmagan holda saqlangan.
- Akkauntdan ommaviy xabar yuborish yoki flood — umrbod blok xavfi.
- Kod SMS'da kutilyapti, u esa Telegram ilovasiga kelgan.
Ko'p so'raladigan savollar
Telegram bot token qanday olinadi?
@BotFather'ga /newbot yuboring, nom va bot bilan tugaydigan username bering — BotFather token qaytaradi. Token botni to'liq boshqarish huquqini beradi, shuning uchun uni sir saqlang; sizib chiqsa /token bilan yangisini oling.
api_id va api_hash qayerdan olinadi?
my.telegram.org'ga telefon raqamingiz bilan kiring, API development tools bo'limida formani to'ldiring — api_id va api_hash chiqadi. Bitta telefon raqamiga hozircha bitta api_id bog'lanadi.
Nega bot guruhdagi xabarlarni ko'rmaydi?
Botlar standart holatda privacy mode'da ishlaydi va guruhda faqat buyruqlar, ularga javoblar va xizmat xabarlarini oladi. BotFather'da /setprivacy → Disable qiling va botni guruhga qayta qo'shing yoki botni admin qiling.
Webhook va getUpdates'ni birga ishlatsa bo'ladimi?
Yo'q. Webhook o'rnatilgan paytda getUpdates ishlamaydi. Polling'ga o'tish uchun avval deleteWebhook chaqiring (SDK'da bot.delete_webhook()).
Shaxsiy Telegram akkauntini API'ga ulash xavfsizmi?
Texnik jihatdan mumkin, lekin ehtiyot bo'ling: norasmiy API klientlari orqali kirgan akkauntlar avtomatik kuzatuvga olinadi, flood, spam va soxta obunachi/ko'rish uchun esa umrbod blok beriladi. Sessiya satri va api_hash'ni parol kabi saqlang.
Socialift'da bot uchun Kalitlar kerakmi?
Yo'q. Bot “Ulanishlar” → “Telegram bot” da faqat BotFather token'i bilan ulanadi. Kalitlar'dagi “Telegram API (my.telegram.org)” kartasi faqat akkaunt (MTProto) ulash uchun.