Reyta’da chat-botlarni oddiy HTTPS API orqali yarating. U Telegram Bot API’ni takrorlaydi, shuning uchun siz biladigan metodlar, parametrlar va JSON javoblar bu yerda oʻzgarishsiz ishlaydi – mavjud bot esa bitta qatorni oʻzgartirish bilan koʻchiriladi.
Kirish
Bot API – bu HTTPS endpointlar toʻplami. Har bir chaqiruv asosiy URL, bot tokeningiz va metod nomidan iborat. Siz parametrlar yuborasiz – JSON qaytadi. Server tomonida hech narsa oʻrnatish shart emas: HTTP-mijozi bor istalgan til u bilan ishlaydi.
Endpoint koʻrinishi
https://api.reyta.uz/bot<token>/METHOD_NAME
Har bir javob bir xil «konvert»ga ega: mantiqiy ok va muvaffaqiyatda result, xatoda esa error_code hamda tushunarli description.
Butun model shu: getMe’ni quyidagi istalgan metodga almashtiring, uning parametrlarini qoʻshing va javobdagi JSON’ni oʻqing.
Avtorizatsiya
Token toʻgʻridan-toʻgʻri soʻrov manzilida uzatiladi – alohida sarlavha yoki OAuth bosqichi yoʻq. Uni sir saqlang: token kimda boʻlsa, botni oʻsha boshqaradi. Agar token oshkor boʻlsa, uni BotMother’da bekor qilib, qayta chiqaring.
Tokenni tekshirish
curl"https://api.reyta.uz/bot<token>/getMe"
Soʻrovlar
Parametrlarni soʻrov qatori, form-kodlangan tana (application/x-www-form-urlencoded) yoki JSON (application/json) koʻrinishida yuboring. Fayl yuklash uchun multipart/form-data’dan foydalaning. Aksar metodlar ham GET, ham POST orqali ishlaydi.
JSON tanali soʻrov
curl"https://api.reyta.uz/bot<token>/sendMessage"\ -H"Content-Type: application/json"\ -d'{"chat_id": 987654321, "text": "Hello from Reyta"}'
Telegram’dan koʻchish
Interfeys Telegram Bot API bilan bir xil boʻlgani uchun koʻchish – qayta yozish emas, balki sozlamani oʻzgartirish. Kutubxonangizdagi API asosiy manzilini Reyta’ga yoʻnaltiring va BotMother’dan token oling. Metod chaqiruvlaringiz, yangilanishlarni qayta ishlash va tiplar oʻzgarishsiz qoladi. Quyida ommabop kutubxonalar uchun bir qatorli oʻzgarishlar (grammY va Telegraf shu endpointda tekshirilgan).
from telegram.ext import ApplicationBuilder
app =(
ApplicationBuilder().token("<token>").base_url("https://api.reyta.uz/bot").build())
Boshqa istalgan kutubxona yoki toʻgʻridan-toʻgʻri HTTP
Agar kutubxonangizda API asosiy URL, host yoki apiRoot parametri boʻlsa, uni https://api.reyta.uz qilib belgilang. API’ga toʻgʻridan-toʻgʻri murojaat qilsangiz – shunchaki hostni oʻzgartiring:
Foydalanuvchi yoki chatga yozish uchun uning chat_id’si kerak. Uni olishning eng oddiy yoʻli: botingizga xabar yuboring va getUpdates orqali oʻqing – chat.id javobda boʻladi. Soʻngra:
sendMessage
curl"https://api.reyta.uz/bot<token>/sendMessage"\ -d"chat_id=987654321"\ -d"text=Salom! My bot is live on Reyta."\ -d"parse_mode=HTML"
Inline-klaviatura qoʻshing, xabarga javob bering yoki media biriktiring – parametrlar quyida har bir metod ostida keltirilgan.
Yangilanishlarni olish
Kiruvchi hodisalarni long polling yoki webhook orqali oling. Bittasini tanlang – ular bir-birini istisno qiladi.
POST/bot<token>/getUpdates→ Array of Update
Long polling orqali yangi yangilanishlarni soʻraydi. Update obyektlari massivini qaytaradi.
Parametr
Tur
Majburiy
Tavsif
offset
Integer
Ixtiyoriy
Qaytariladigan birinchi yangilanish identifikatori. Tasdiqlash uchun oxirgi olingan update_id + 1 ni koʻrsating.
limit
Integer
Ixtiyoriy
Olinadigan yangilanishlar soni, 1–100. Standart 100.
timeout
Integer
Ixtiyoriy
Long polling taymauti soniyada. 0 – qisqa soʻrov (faqat test uchun).
allowed_updates
Array of String
Ixtiyoriy
Olinadigan yangilanish turlari roʻyxati, masalan ["message","callback_query"].
{"ok":true,"result":true,"description":"Webhook was set"}
POST/bot<token>/deleteWebhook→ True
Webhook’ni oʻchiradi va getUpdates’ga qaytaradi.
GET/bot<token>/getWebhookInfo→ WebhookInfo
Joriy webhook holati, kutilayotgan yangilanishlar soni va oxirgi xato.
Xabar yuborish
Matn, media va har qanday kontentni bot yeta oladigan istalgan chatga yetkazing.
POST/bot<token>/sendMessage→ Message
Matnli xabar yuboradi. Markdown/HTML formatlash va inline-klaviaturalarni qoʻllab-quvvatlaydi.
Parametr
Tur
Majburiy
Tavsif
chat_id
Integer or String
Ha
Chatning noyob identifikatori yoki kanalning @username’i.
text
String
Ha
Xabar matni, 1–4096 belgi.
parse_mode
String
Ixtiyoriy
Formatlash uchun "MarkdownV2" yoki "HTML".
reply_markup
Object
Ixtiyoriy
Inline-klaviatura, reply-klaviatura yoki force-reply.
disable_notification
Boolean
Ixtiyoriy
Bildirishnoma tovushisiz, jimgina yuborish.
Soʻrov
curl"https://api.reyta.uz/bot<token>/sendMessage"\ -d"chat_id=987654321"\ -d"text=Salom! Reyta Bot API is live."\ -d"parse_mode=HTML"
Javob
{"ok":true,"result":{"message_id":43,"chat":{"id":987654321,"type":"private"},"date":1783900050,"text":"Salom! Reyta Bot API is live."}}
POST/bot<token>/sendPhoto→ Message
Rasmni file_id, HTTP-URL yoki multipart yuklash orqali yuboradi.
Parametr
Tur
Majburiy
Tavsif
chat_id
Integer or String
Ha
Maqsadli chat.
photo
String or InputFile
Ha
file_id, HTTPS-URL yoki yuklangan fayl.
caption
String
Ixtiyoriy
Sarlavha, 0–1024 belgi.
POST/bot<token>/forwardMessage→ Message
Har qanday turdagi xabarni bir chatdan boshqasiga yoʻnaltiradi.
Parametr
Tur
Majburiy
Tavsif
chat_id
Integer or String
Ha
Maqsadli chat identifikatori yoki @channelusername.
from_chat_id
Integer or String
Ha
Xabar koʻchiriladigan chat.
message_id
Integer
Ha
Xabar identifikatori.
POST/bot<token>/copyMessage→ MessageId
Xabarni yoʻnaltirish sarlavhasisiz nusxalaydi.
Parametr
Tur
Majburiy
Tavsif
chat_id
Integer or String
Ha
Maqsadli chat identifikatori yoki @channelusername.
from_chat_id
Integer or String
Ha
Xabar nusxalanadigan chat.
message_id
Integer
Ha
Xabar identifikatori.
caption
String
Ixtiyoriy
Yangi sarlavha. Koʻrsatilmasa, asl sarlavha saqlanadi.
parse_mode
String
Ixtiyoriy
Yangi sarlavha formati: HTML, Markdown yoki MarkdownV2.
POST/bot<token>/sendDocument→ Message
Belgilangan hajm chegarasidagi istalgan faylni yuboradi.
POST/bot<token>/sendVideo→ Message
MP4 videoni yuboradi.
POST/bot<token>/sendAnimation→ Message
Ovozsiz GIF yoki H.264/MPEG-4 animatsiyani yuboradi.
POST/bot<token>/sendAudio→ Message
Musiqa pleyerida koʻrsatiladigan audio faylni yuboradi.
POST/bot<token>/sendVoice→ Message
Ovozli xabar yuboradi (OGG/OPUS).
POST/bot<token>/sendVideoNote→ Message
Yumaloq, kvadrat video-xabar yuboradi.
POST/bot<token>/sendMediaGroup→ Array of MessageQisman qoʻllab-quvvatlanadi
Bir guruh rasm/video/hujjatni albom sifatida yuboradi.
Endi toʻliq massiv qaytaradi, har bir element from, date va media_group_id bilan. Element media obyekti (photo/video) javobda hali takrorlanmaydi – kerak boʻlsa albomni getUpdates orqali oʻqing.
POST/bot<token>/sendLocation→ Message
Xaritadagi nuqtani yuboradi; jonli lokatsiya ham boʻlishi mumkin.
Parametr
Tur
Majburiy
Tavsif
chat_id
Integer or String
Ha
Maqsadli chat identifikatori yoki @channelusername.
latitude
Float
Ha
Nuqtaning kengligi.
longitude
Float
Ha
Nuqtaning uzunligi.
live_period
Integer
Ixtiyoriy
Lokatsiya jonli qolish soniyalari, 60-86400. Boʻlmasa – bir martalik lokatsiya.
POST/bot<token>/sendVenue→ Message
Manzil (joy) haqidagi maʼlumotni yuboradi.
POST/bot<token>/sendContact→ Message
Telefon kontaktini yuboradi.
POST/bot<token>/sendPoll→ MessageHozircha mavjud emas
Soʻrovnoma yoki viktorina yuboradi.
Hozircha amalga oshirilmagan – 501 qaytaradi. Soʻrovnomalar server tomonida qoʻllab-quvvatlanmaydi.
POST/bot<token>/sendDice→ Message
Tasodifiy qiymatli animatsion emoji yuboradi.
POST/bot<token>/sendChatAction→ True
«yozmoqda…» yoki «yuklamoqda…» holatini koʻrsatadi.
POST/bot<token>/sendSticker→ MessageHozircha mavjud emas
Statik, animatsion yoki video stikerni yuboradi.
Hozircha amalga oshirilmagan – 501 qaytaradi. Stiker yuborish yoʻli keyingi bosqichda paydo boʻladi; oʻshanda qayta urinib koʻring.
POST/bot<token>/copyMessages→ Array of MessageId
Bir nechta xabarni asl nusxaga havolasiz koʻchiradi.
POST/bot<token>/forwardMessages→ Array of MessageId
Bir nechta xabarni asl muallifni saqlagan holda birdaniga uzatadi.
Tahrirlash va oʻchirish
POST/bot<token>/editMessageText→ Message or TrueQisman qoʻllab-quvvatlanadi
Yuborilgan yoki inline xabar matnini tahrirlaydi.
inline_message_id boʻyicha tahrirlash hozircha qoʻllab-quvvatlanmaydi – 501 qaytaradi. chat_id + message_id boʻyicha tahrirlash ishlaydi.
POST/bot<token>/editMessageCaption→ Message or TrueQisman qoʻllab-quvvatlanadi
Media xabar sarlavhasini tahrirlaydi.
inline_message_id boʻyicha tahrirlash hozircha qoʻllab-quvvatlanmaydi – 501 qaytaradi. chat_id + message_id boʻyicha tahrirlash ishlaydi.
POST/bot<token>/editMessageMedia→ Message or TrueQisman qoʻllab-quvvatlanadi
Xabardagi mediani almashtiradi.
chat_id + message_id boʻyicha ishlaydi (media URL yoki attach:// yuklash orqali; InputMedia sarlavhasi xabar sarlavhasini almashtiradi). file_id qayta ishlatish va inline_message_id hozircha qoʻllab-quvvatlanmaydi.
POST/bot<token>/editMessageReplyMarkup→ Message or TrueQisman qoʻllab-quvvatlanadi
Xabarning faqat inline-klaviaturasini tahrirlaydi.
inline_message_id boʻyicha tahrirlash hozircha qoʻllab-quvvatlanmaydi – 501 qaytaradi. chat_id + message_id boʻyicha tahrirlash ishlaydi.
POST/bot<token>/editMessageLiveLocation→ Message or TrueQisman qoʻllab-quvvatlanadi
Faol jonli lokatsiyani koʻchiradi.
inline_message_id boʻyicha tahrirlash hozircha qoʻllab-quvvatlanmaydi – 501 qaytaradi. chat_id + message_id boʻyicha tahrirlash ishlaydi.
POST/bot<token>/deleteMessage→ True
Bot yuborgan xabarni yoki bot admin boʻlgan istalgan xabarni oʻchiradi.
Parametr
Tur
Majburiy
Tavsif
chat_id
Integer or String
Ha
Maqsadli chat identifikatori yoki @channelusername.
message_id
Integer
Ha
Xabar identifikatori.
POST/bot<token>/deleteMessages→ True
Bir nechta xabarni bir vaqtda oʻchiradi.
POST/bot<token>/stopMessageLiveLocation→ Message or TrueQisman qoʻllab-quvvatlanadi
Faol jonli lokatsiya yangilanishini muddati tugashidan oldin toʻxtatadi.
inline_message_id boʻyicha toʻxtatish hozircha qoʻllab-quvvatlanmaydi – 501 qaytaradi. chat_id + message_id boʻyicha ishlaydi.
POST/bot<token>/setMessageReaction→ True
Xabarga botning reaksiyasini qoʻyadi yoki olib tashlaydi.