Xabarlar
editMessageReplyMarkup
Bot xabaridagi inline klaviaturani almashtiradi yoki olib tashlaydi.
POST
https://api.zamin.app/bot<TOKEN>/editMessageReplyMarkupGET ham ishlaydi. Parametrlar: query, JSON, form yoki multipart — batafsil.
Faqat inline klaviaturani o'zgartiradi, matnga tegmaydi. Botning o'z xabarlari (matn yoki fayl), yuborilganidan keyin 48 soat ichida. reply_markup berilmasa, klaviatura olib tashlanadi.
Guruhda ham xuddi shunday (botning o'z xabarlari). Kanal postlarida tugma bo'lmaydi: 400 channel posts can't have buttons.
Parametrlar
| Parametr | Turi | Majburiy | Cheklov | Izoh |
|---|---|---|---|---|
chat_id | Integer yoki String | Majburiy | ≤16 raqam (manfiy ham) yoki @username | Shaxsiy chat: foydalanuvchining id'si (message.chat.id), faqat botni boshlagan va bloklamagan bo'lsa. Guruh yoki kanal: manfiy id (-4012345678, -100…) yoki bot a'zo bo'lgan ochiq chatning @username'i. Chat id'lari. |
message_id | Integer | Majburiy | — | Shu chatdagi xabar raqami. |
reply_markup | InlineKeyboardMarkup | Ixtiyoriy | ≤12 qator, qatorda ≤8, jami ≤100 | Berilmasa, klaviatura o'chadi. |
Javob
Natija (result): Message
JSON
{
"ok": true,
"result": {
"message_id": 14,
"from": {
"id": 1000001,
"is_bot": true,
"first_name": "Ob-havo",
"username": "ObHavoBot",
"can_join_groups": true,
"can_read_all_group_messages": false,
"supports_inline_queries": false
},
"chat": {
"id": 4810235517,
"type": "private",
"first_name": "Ali",
"last_name": "Valiyev",
"username": "ali"
},
"date": 1791106200,
"edit_date": 1791106290,
"text": "Salom! Bugun Toshkentda +24°C ☀️"
}
}Xatolar
| Kod | Tavsif | Sabab va yechim |
|---|---|---|
| 400 | Bad Request: chat not found | chat_id noto'g'ri, foydalanuvchi botni boshlamagan, bloklagan yoki hisobi o'chirilgan. Hammasi uchun javob bir xil (atayin). |
| 400 | Bad Request: message to edit not found | Bunday xabar yo'q yoki o'chirilgan. |
| 400 | Bad Request: message can't be edited | Xabar botniki emas yoki 48 soatdan eski. |
| 400 | Bad Request: message is not modified | Klaviatura avvalgidek. |
| 400 | Bad Request: reply_markup… | Klaviatura cheklovlarga mos emas (tugma matni 1–64, callback_data ≤64 bayt, ruxsat etilmagan URL va h.k.). |
| 400 | Bad Request: channel posts can't have buttons | Kanal postlarida klaviatura yo'q. |
| 429 | Too Many Requests: retry after N | Bitta guruh yoki kanalga daqiqasiga 20 ta xabar, bot bo'yicha soniyasiga 30 ta yoki guruhda shifrlash byudjeti (1 000 qurilma/s bot, 1 500/s bot egasi, 5 000/s umumiy). Rad etilgan so'rov hech narsa qilmagan: retry_after soniya kutib, qayta yuboring. |
Istalgan metodda bo'lishi mumkin: 401 Unauthorized, 403 Forbidden: bot is suspended, 429 Too Many Requests, 400 Bad Request: <maydon>: … — xato kodlari.
Misol
Python
import os
import requests
TOKEN = os.environ["ZAMIN_BOT_TOKEN"]
API = f"https://api.zamin.app/bot{TOKEN}"
CHAT_ID = int(os.environ["ZAMIN_CHAT_ID"]) # getUpdates javobidagi message.chat.id
MESSAGE_ID = 14
# Klaviaturani olib tashlash: reply_markup'ni yubormang
r = requests.post(
f"{API}/editMessageReplyMarkup",
json={"chat_id": CHAT_ID, "message_id": MESSAGE_ID},
timeout=15,
)
print(r.json())curl
curl -s -X POST "https://api.zamin.app/bot$ZAMIN_BOT_TOKEN/editMessageReplyMarkup" \
-H "Content-Type: application/json" \
-d '{"chat_id": 4810235517, "message_id": 14}'