Guruh boshqaruvi
restrictChatMember
A'zoni jim qiladi (yoza olmaydi) — muddat bilan yoki muddatsiz; yoki cheklovni olib tashlaydi.
POST
https://api.zamin.app/bot<TOKEN>/restrictChatMemberGET ham ishlaydi. Parametrlar: query, JSON, form yoki multipart — batafsil.
Hozircha faqat bitta ruxsat boshqariladi: permissions.can_send_messages.
{"can_send_messages": false}— a'zo guruhga yoza olmaydi (until_dategacha yoki muddatsiz).{"can_send_messages": true}— cheklov olib tashlanadi. Cheklovni faqat shunday olish mumkin.can_send_messagesberilmasa, ufalsehisoblanadi (Telegram qoidasi):{}yoki{"can_send_media_messages": true}a'zoni jim qiladi.
permissions ichidagi boshqa maydonlar (can_send_media_messages va h.k.) qabul qilinadi, lekin e'tiborga olinmaydi. Botda can_restrict_members bo'lishi kerak; odam hozir guruh a'zosi bo'lishi shart; egasi va adminlarga qo'llanmaydi. Holatni getChatMember bilan tekshirish mumkin (restricted).
Parametrlar
| Parametr | Turi | Majburiy | Cheklov | Izoh |
|---|---|---|---|---|
chat_id | Integer yoki String | Majburiy | manfiy id yoki @username | Bot a'zo bo'lgan guruh: manfiy id yoki ochiq guruhning @username'i. Kanal uchun ishlamaydi. |
user_id | Integer | Majburiy | — | Bot ko'rgan psevdonim id (message.from.id, new_chat_members[].id …). Bot hali ko'rmagan odamning id'si — user not found. |
permissions | ChatPermissions | Majburiy | — | JSON obyekt, faqat can_send_messages ishlaydi; berilmasa — false (jim qiladi). Form/multipart'da JSON matn. |
until_date | Integer | Ixtiyoriy | Unix soniya | Cheklov tugash vaqti. Berilmasa, 0, hozirdan 30 soniyadan kam yoki 366 kundan ko'p bo'lsa — muddatsiz (Telegram qoidasi). |
use_independent_chat_permissions | Boolean | Ixtiyoriy | — | Qabul qilinadi, e'tiborga olinmaydi. |
Javob
Natija (result): true
JSON
{"ok": true, "result": true}Xatolar
| Kod | Tavsif | Sabab va yechim |
|---|---|---|
| 400 | Bad Request: chat not found | Bunday chat yo'q, bot unda a'zo emas yoki bu shaxsiy chat id'si. Hammasi uchun javob bir xil (atayin). |
| 400 | Bad Request: method is not available for channel chats | Bu metod faqat guruhlar uchun. |
| 400 | Bad Request: not enough rights to restrict/unrestrict chat member | Bot admin emas yoki unda "Foydalanuvchilarni cheklash" (can_restrict_members) huquqi yo'q. |
| 400 | Bad Request: user not found | user_id bot ko'rgan psevdonim id emas (yoki odam guruhda emas). |
| 400 | Bad Request: can't remove chat owner | Guruh egasiga admin amallari qo'llanmaydi. |
| 400 | Bad Request: user is an administrator of the chat | Adminlarga ham qo'llanmaydi. |
| 400 | Bad Request: can't restrict self | user_id — botning o'zi. |
| 400 | Bad Request: permissions: … | permissions yo'q yoki JSON obyekt emas. |
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}"
import time
GROUP_ID = int(os.environ["ZAMIN_GROUP_ID"])
USER_ID = 5203318874
# 10 daqiqaga jim qilish
requests.post(
f"{API}/restrictChatMember",
json={
"chat_id": GROUP_ID,
"user_id": USER_ID,
"permissions": {"can_send_messages": False},
"until_date": int(time.time()) + 10 * 60,
},
timeout=15,
)
# Cheklovni olib tashlash: can_send_messages: True aniq yozilishi shart ({} jim qiladi)
requests.post(
f"{API}/restrictChatMember",
json={"chat_id": GROUP_ID, "user_id": USER_ID, "permissions": {"can_send_messages": True}},
timeout=15,
)curl
curl -s -X POST "https://api.zamin.app/bot$ZAMIN_BOT_TOKEN/restrictChatMember" \
-H "Content-Type: application/json" \
-d '{
"chat_id": -4012345678,
"user_id": 5203318874,
"permissions": {"can_send_messages": false},
"until_date": 1791106800
}'