ZaminDocs

Guruh boshqaruvi

restrictChatMember

A'zoni jim qiladi (yoza olmaydi) — muddat bilan yoki muddatsiz; yoki cheklovni olib tashlaydi.

POSThttps://api.zamin.app/bot<TOKEN>/restrictChatMember

GET 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_messages berilmasa, u false hisoblanadi (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

ParametrTuriMajburiyCheklovIzoh
chat_idInteger yoki StringMajburiymanfiy id yoki @usernameBot a'zo bo'lgan guruh: manfiy id yoki ochiq guruhning @username'i. Kanal uchun ishlamaydi.
user_idIntegerMajburiy—Bot ko'rgan psevdonim id (message.from.id, new_chat_members[].id …). Bot hali ko'rmagan odamning id'si — user not found.
permissionsChatPermissionsMajburiy—JSON obyekt, faqat can_send_messages ishlaydi; berilmasa — false (jim qiladi). Form/multipart'da JSON matn.
until_dateIntegerIxtiyoriyUnix soniyaCheklov tugash vaqti. Berilmasa, 0, hozirdan 30 soniyadan kam yoki 366 kundan ko'p bo'lsa — muddatsiz (Telegram qoidasi).
use_independent_chat_permissionsBooleanIxtiyoriy—Qabul qilinadi, e'tiborga olinmaydi.

Javob

Natija (result): true

JSON
{"ok": true, "result": true}

Xatolar

KodTavsifSabab va yechim
400Bad Request: chat not foundBunday chat yo'q, bot unda a'zo emas yoki bu shaxsiy chat id'si. Hammasi uchun javob bir xil (atayin).
400Bad Request: method is not available for channel chatsBu metod faqat guruhlar uchun.
400Bad Request: not enough rights to restrict/unrestrict chat memberBot admin emas yoki unda "Foydalanuvchilarni cheklash" (can_restrict_members) huquqi yo'q.
400Bad Request: user not founduser_id bot ko'rgan psevdonim id emas (yoki odam guruhda emas).
400Bad Request: can't remove chat ownerGuruh egasiga admin amallari qo'llanmaydi.
400Bad Request: user is an administrator of the chatAdminlarga ham qo'llanmaydi.
400Bad Request: can't restrict selfuser_id — botning o'zi.
400Bad 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
}'