Xabarlar
editMessageText
Botning o'z matnli xabarini (yoki kanal postini) tahrirlaydi.
POST
https://api.zamin.app/bot<TOKEN>/editMessageTextGET ham ishlaydi. Parametrlar: query, JSON, form yoki multipart — batafsil.
Bot yuborgan matnli xabarning matnini (va inline klaviaturasini) o'zgartiradi. Faqat botning o'z xabarlari va faqat yuborilganidan keyin 48 soat ichida.
Telegram'dagidek: reply_markup berilmasa, xabardagi inline klaviatura olib tashlanadi. Klaviaturani saqlab qolish uchun uni qayta yuboring.
Guruh va kanalda
- Guruh: faqat botning o'z xabarlari, 48 soat ichida. Fayl xabarida
textuning izohini (caption) almashtiradi. Tahrir hamma a'zolar uchun qayta shifrlanadi va guruh limitiga (daqiqasiga 20) kiradi. - Kanal: botning o'z postlari, boshqa postlar esa
can_edit_messageshuquqi bilan. Fayl postidatext— izoh (≤1024). Yangi matn odamlarning postlari kabi kontent filtridan o'tadi. Postlarda tugma yo'q, shuning uchunreply_markupe'tiborga olinmaydi.
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. |
text | String | Majburiy | 1–4096 belgi | Yangi matn. |
reply_markup | InlineKeyboardMarkup | Ixtiyoriy | ≤12 qator, qatorda ≤8, jami ≤100 | Faqat inline klaviatura. 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": 1791106260,
"text": "Yangilandi: +25°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: there is no text in the message to edit | Fayl xabarini tahrirlab bo'lmaydi (caption tahrirlash metodi yo'q). |
| 400 | Bad Request: message is not modified | Matn ham, klaviatura ham avvalgidek. |
| 400 | Bad Request: inline messages are not supported | inline_message_id qo'llab-quvvatlanmaydi. |
| 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: not enough rights to edit messages in the chat | Kanal: post botniki emas va botda can_edit_messages yo'q. |
| 400 | Bad Request: <sabab> | Kanal: post (yoki tahrir) matni kontent filtridan o'tmadi — odamlarning postlaridagi qoidalar bilan bir xil. |
| 400 | Bad Request: method is not available for this chat | Kanal izohlari chatida (supergroup) bu amal yo'q: bot izoh yoza olmaydi, izohlar chatini boshqarmaydi. |
| 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 # sendMessage javobidagi result.message_id
r = requests.post(
f"{API}/editMessageText",
json={"chat_id": CHAT_ID, "message_id": MESSAGE_ID, "text": "Yangilandi: +25°C 🌤"},
timeout=15,
)
print(r.json())curl
curl -s -X POST "https://api.zamin.app/bot$ZAMIN_BOT_TOKEN/editMessageText" \
-H "Content-Type: application/json" \
-d '{
"chat_id": 4810235517,
"message_id": 14,
"text": "Yangilandi: +25°C 🌤"
}'