EzEzLife Developers
ພາສາລາວ
Bot API
EZLIFE / BOT PLATFORM

ຄູ່ມື Bot API

ຈາກການສ້າງບັອດຫາການເຊື່ອມຕໍ່ໂປຣແກຣມ

ຄູ່ມື BotMother, ຂໍ້ຄວາມ, ຄັດລອກລະຫັດ ແລະ ປຸ່ມຕອບກັບ. ຕົວຢ່າງໃຊ້ຄ່າຈຳລອງ.

ອັບເດດ HTTPS · JSON · UTF-8

ພາບລວມ ແລະ ຄວາມສາມາດ

#

ວິທີການສາທາລະນະມີ getMe, sendMessage, getUpdates. ສົ່ງຂໍ້ຄວາມສ່ວນຕົວ/ກຸ່ມ ແລະ ຮັບເຫດການທີ່ອາດມີເນື້ອຫາບໍ່ແມ່ນຂໍ້ຄວາມ.

ໃຊ້ copy_text ສະແດງໄອຄອນຄັດລອກລະຫັດ ແລະ reply_markup ສະແດງປຸ່ມຂໍ້ຄວາມໃຕ້ຊ່ອງພິມໃນແຊັດສ່ວນຕົວ.

ໂດເມນນີ້ເກັບຄູ່ມື. API ຍັງຢູ່ im.ez7.life ໃຕ້ /bot-api/. ຄັດລອກ ID ຜູ້ຮັບທີ່ ຕັ້ງຄ່າ → ລາຍລະອຽດບັນຊີ → ID. ຕອບດ້ວຍ message.chat.id ທີ່ຮັບ; ໃນກຸ່ມມັນເປັນ ID ກຸ່ມ.

ທີ່ຢູ່ຫຼັກ API
https://im.ez7.life/bot-api/<BOT_TOKEN>/<METHOD>

ເລີ່ມຕົ້ນໄວ

#
  1. ຄົ້ນຫາ ແລະ ເພີ່ມ @BotMother, ເປີດຈັດການບັອດຢູ່ເທິງການສົນທະນາ.
  2. ສ້າງບັອດ, ຄັດລອກ Token ແລະ ເກັບໃນຕົວແປຝັ່ງເຊີບເວີ EZLIFE_BOT_TOKEN.
  3. ເອີ້ນ getMe ກວດຂໍ້ມູນ, ແລ້ວເອີ້ນ sendMessage ດ້ວຍ ID ຜູ້ຮັບ.
  4. ດຶງ getUpdates ເປັນໄລຍະ; ບັນທຶກ offset ຕໍ່ໄປຫຼັງຈາກປະມວນຜົນສຳເລັດ.
bash
python3 bot.py

ຈັດການຜ່ານ BotMother

#

ຊື່ສະແດງ 1–64 ຕົວອັກສອນ. ຄຳນຳໜ້າບັນຊີໃນຟອມ 3–28 ຕົວ, ເລີ່ມດ້ວຍອັກສອນອັງກິດ, ໃຊ້ອັກສອນ, ຕົວເລກ ແລະ ຂີດລຸ່ມ; ຟອມເພີ່ມ _bot. ກວດວ່າຊື່ວ່າງກ່ອນສ້າງ.

ຄົ້ນຫາບັອດ, ເບິ່ງ ID, ສະຖານະ, ເວລາສ້າງ ແລະ **** ກັບ 6 ຕົວທ້າຍ Token; ອອກໃໝ່ ຫຼື ຖອນ Token ໄດ້. ຜູ້ດູແລກຳນົດຈຳນວນບັອດ.

ຄຳສັ່ງໜ້າທີ່
/startສະແດງວິທີຈັດການ
/newbotເລີ່ມສ້າງບັອດ
/mybotsລາຍຊື່ບັອດຂອງທ່ານ
/token @usernameອອກ Token ໃໝ່ ຍົກເລີກອັນເກົ່າ
/revoke @usernameຖອນ Token ປັດຈຸບັນ
/cancelຍົກເລີກການສ້າງ
/helpສະແດງຊ່ວຍເຫຼືອ

Token ແລະ ຄວາມປອດໄພ

#

Token ເຕັມສະແດງຕອນສ້າງ ຫຼື ອອກໃໝ່ເທົ່ານັ້ນ. ມັນເປັນລະຫັດຜ່ານບັອດ; ເກັບຝັ່ງເຊີບເວີ, ຫ້າມໃສ່ເວັບ, ແອັບ, ຄັງສາທາລະນະ ຫຼື ບັນທຶກ.

ອອກໃໝ່ເຮັດໃຫ້ Token ເກົ່າໝົດຜົນທັນທີ; ຖອນແລ້ວຈະເອີ້ນຈາກພາຍນອກບໍ່ໄດ້. ສ່ວນທ້າຍທີ່ປິດບັງກູ້ຄືນບໍ່ໄດ້; ຖ້າຫາຍໃຫ້ອອກໃໝ່ແລະແກ້ໂປຣແກຣມ.

Token ເກົ່າຈະເກັບສ່ວນທ້າຍເມື່ອເອີ້ນ Bot API ຖືກຕ້ອງຄັ້ງຕໍ່ໄປ. API Token ໃນລາຍລະອຽດບັນຊີໃຊ້ກັບ API ບັນຊີ; Bot API ນີ້ໃຊ້ Token ຈາກ BotMother.

getMe · ຂໍ້ມູນບັອດ

#
POST/bot-api/<BOT_TOKEN>/getMe

ບໍ່ຕ້ອງມີພາຣາມິເຕີທຸລະກິດ. ສົ່ງຄືນ ID ບັອດ, ຊື່ສະແດງ, ຊື່ບັນຊີ ແລະ ຄວາມສາມາດກຸ່ມ. ໃຊ້ກວດ Token.

ຄຳຮ້ອງຂໍ
curl --fail-with-body --request POST \
  "https://im.ez7.life/bot-api/${EZLIFE_BOT_TOKEN}/getMe" \
  --header 'Content-Type: application/json' --data '{}'
ຜົນຕອບກັບ
{
  "ok": true,
  "result": {
    "id": "1000000000",
    "is_bot": true,
    "display_name": "Example Bot",
    "username": "example_bot",
    "can_join_groups": true,
    "can_read_all_group_messages": true
  }
}

sendMessage · ສົ່ງຂໍ້ຄວາມ

#
POST/bot-api/<BOT_TOKEN>/sendMessage

ໃຊ້ POST application/json. ສົ່ງ chat_id ເປັນສະຕຣິງສະເໝີ: ID ຜູ້ຮັບສຳລັບສ່ວນຕົວ, ID ກຸ່ມພ້ອມ chat_type: "group" ສຳລັບກຸ່ມ.

ຂໍ້ຄວາມ 1–5000 ຕົວ, ຕັດຊ່ອງວ່າງຫົວທ້າຍ. ເກັບ message_id. ບໍ່ມີຄີປ້ອງກັນສົ່ງຊ້ຳ; ຖ້າໝົດເວລາໃຫ້ກວດຜົນກ່ອນສົ່ງອີກ.

ພາຣາມິເຕີປະເພດຈຳເປັນຄຳອະທິບາຍ
chat_idstringແມ່ນID ຜູ້ຮັບ ຫຼື ID ກຸ່ມ, ເປັນສະຕຣິງສະເໝີ.
textstringແມ່ນຂໍ້ຄວາມ 1–5000 ຕົວ.
chat_typestringບໍ່ຄ່າເລີ່ມ private; ກຸ່ມໃຊ້ group, ຮັບ supergroup ໄດ້.
copy_textstringບໍ່ສະຕຣິງເລກ 4–12 ຫຼັກປາກົດຄົບໃນ text.
reply_markupobject / JSON stringບໍ່ອອບເຈັກແປ້ນ ຫຼື ສະຕຣິງ JSON, ບໍ່ບັງຄັບ.
ຄຳຮ້ອງຂໍ
curl --fail-with-body --request POST \
  "https://im.ez7.life/bot-api/${EZLIFE_BOT_TOKEN}/sendMessage" \
  --header 'Content-Type: application/json' --data-binary @- <<'JSON'
{
  "chat_id": "USER_ID",
  "text": "ດຳເນີນຄຳສັ່ງຊື້ແລ້ວ."
}
JSON
sendMessage · group
{
  "chat_id": "GROUP_ID",
  "chat_type": "group",
  "text": "ດຳເນີນຄຳສັ່ງຊື້ແລ້ວ."
}
ຜົນຕອບກັບ
{
  "ok": true,
  "result": {
    "message_id": "EXAMPLE_MESSAGE_ID",
    "date": 1794297600,
    "chat": {
      "id": "USER_ID",
      "type": "private"
    },
    "text": "ດຳເນີນຄຳສັ່ງຊື້ແລ້ວ."
  }
}

ສົ່ງສຳເລັດຄືນ ok: true ແລະ result; ລະຫັດມີ copy_text, ເມນູມີ reply_markup ແລະ reply_keyboard_revision. ຮັບຄືນອາເຣ result; ບໍ່ມີເຫດການແມ່ນ result: [].

ຄັດລອກລະຫັດຢືນຢັນ

#

ໃສ່ຊື່ລະບົບ, ຈຸດປະສົງ ແລະ ອາຍຸໃນຂໍ້ຄວາມ, ແລ້ວເພີ່ມ copy_text ເປັນສະຕຣິງເລກ ASCII 4–12 ຫຼັກທີ່ປາກົດຄົບໃນ text. ສະຕຣິງຮັກສາເລກສູນນຳໜ້າ.

ໄອຄອນຄັດລອກພຽງລະຫັດ. ໂປຣແກຣມຕ້ອງສ້າງ, ກວດ ແລະ ກຳນົດອາຍຸເອງ; ຟິວນີ້ຄວບຄຸມການສະແດງ/ຄັດລອກ. ແອັບເກົ່າຍັງອ່ານຂໍ້ຄວາມໄດ້.

sendMessage · copy_text
{
  "chat_id": "USER_ID",
  "text": "ລະຫັດເຂົ້າລະບົບຕົວຢ່າງ: 003812, ໃຊ້ໄດ້ 5 ນາທີ.",
  "copy_text": "003812"
}

ແປ້ນປຸ່ມຕອບກັບ

#

ແປ້ນປຸ່ມຂໍ້ຄວາມຫຼາຍແຖວ. ກົດແລ້ວສົ່ງຊື່ປຸ່ມເປັນຂໍ້ຄວາມທຳມະດາ; ຈັດການຜ່ານ message.text ໃນ getUpdates.

ມີ 1–8 ແຖວ, 1–4 ປຸ່ມຕໍ່ແຖວ, ລວມບໍ່ເກີນ 24. ຊື່ 1–64 ຕົວ, ຫ້າມວ່າງ, ຂຶ້ນແຖວໃໝ່ ຫຼື ອັກສອນຄວບຄຸມ. ປຸ່ມເປັນສະຕຣິງ ຫຼື ອອບເຈັກມີແຕ່ text.

ບໍ່ສົ່ງ reply_markup ຈະເກັບແປ້ນເກົ່າ; ແປ້ນໃໝ່ແທນເກົ່າ. ສົ່ງ remove_keyboard: true ຢ່າງດຽວເພື່ອລຶບແປ້ນແລະປຸ່ມເປີດ.

ຜູ້ໃຊ້ຊ່ອນ/ເປີດໄດ້. ແປ້ນໃຊ້ຄັ້ງດຽວຊ່ອນຫຼັງສົ່ງປຸ່ມສຳເລັດ; ລຸ້ນໃໝ່ເປີດອີກ. ສະຖານະແຍກຕາມບັອດ/ຜູ້ໃຊ້, ກວດປະມານທຸກ 5 ວິນາທີໃນແຊັດທີ່ເປີດ.

ແປ້ນໃຊ້ໄດ້ສະເພາະສ່ວນຕົວ; ກຸ່ມມີ reply_markup ຈະໄດ້ 422. text ຍັງຈຳເປັນ. ໃຊ້ JSON true/false ບໍ່ແມ່ນສະຕຣິງ. ຄຸນສົມບັດແປ້ນ/ປຸ່ມທີ່ບໍ່ຮອງຮັບຈະປະຕິເສດ. reply_markup ແບບສະຕຣິງ JSON ສູງສຸດ 16 KiB.

ພາຣາມິເຕີປະເພດຈຳເປັນຄຳອະທິບາຍ
reply_markupobject / JSON stringບໍ່ອອບເຈັກແປ້ນ ຫຼື ສະຕຣິງ JSON, ບໍ່ບັງຄັບ.
keyboardarray[]ແມ່ນອາເຣສອງມິຕິ, ແຕ່ລະອາເຣຍ່ອຍເປັນໜຶ່ງແຖວ.
resize_keyboardbooleanບໍ່ຄ່າເລີ່ມ true ປຸ່ມນ້ອຍ; false ປຸ່ມສູງກວ່າ.
one_time_keyboardbooleanບໍ່ຄ່າເລີ່ມ false; true ຊ່ອນຫຼັງສົ່ງປຸ່ມສຳເລັດ.
remove_keyboardbooleanບໍ່true ລຶບແປ້ນ, ຫ້າມຮ່ວມກັບຕົວເລືອກແປ້ນອື່ນ.
sendMessage · reply_markup
{
  "chat_id": "USER_ID",
  "text": "ເລືອກບໍລິການ:",
  "reply_markup": {
    "keyboard": [
      [
        {
          "text": "ຕັ້ງຄ່າພາສາ"
        },
        {
          "text": "ຕິດຕາມພັດສະດຸ"
        }
      ],
      [
        {
          "text": "ຕັ້ງຄ່າແຈ້ງເຕືອນ"
        },
        {
          "text": "ປ້ອນເລກພັດສະດຸ"
        }
      ]
    ],
    "resize_keyboard": true,
    "one_time_keyboard": false
  }
}
sendMessage · one_time_keyboard
{
  "chat_id": "USER_ID",
  "text": "ເລືອກບໍລິການ:",
  "reply_markup": {
    "keyboard": [
      [
        "ຕັ້ງຄ່າພາສາ",
        "ຕິດຕາມພັດສະດຸ"
      ]
    ],
    "one_time_keyboard": true
  }
}
sendMessage · remove_keyboard
{
  "chat_id": "USER_ID",
  "text": "ດຳເນີນການສຳເລັດ.",
  "reply_markup": {
    "remove_keyboard": true
  }
}

getUpdates · ຮັບຂໍ້ຄວາມ

#
POST/bot-api/<BOT_TOKEN>/getUpdates

ດຶງແບບສັ້ນ: ບໍ່ມີຂໍ້ຄວາມຈະຄືນອາເຣວ່າງທັນທີ. ເອີ້ນທຸກ 1–3 ວິນາທີ, ເພີ່ມເວລາລໍຖ້າເມື່ອຜິດພາດ. ບໍ່ມີ webhook ສາທາລະນະ ຫຼື ດຶງແບບຍາວ.

ຫຼັງສຳເລັດຕັ້ງ offset = update_id ສຸດທ້າຍ + 1; ເຫດການກ່ອນໜ້າຖືວ່າຮັບຮູ້. ຖ້າລົ້ມເຫຼວຄົງ offset ເກົ່າ, ປ້ອງກັນຊ້ຳດ້ວຍ update_id ຫຼື ຄີທຸລະກິດ.

ປະສານໂປຣແກຣມຮັບບັອດດຽວກັນ ເພື່ອບໍ່ໃຫ້ເລື່ອນ offset ຂອງກັນ. ເຫດການອື່ນເບິ່ງ content_type ແລະ raw_content.

ພາຣາມິເຕີປະເພດຈຳເປັນຄຳອະທິບາຍ
offsetintegerບໍ່ID ເຫດການຕໍ່ໄປບໍ່ຕິດລົບ, ຄ່າເລີ່ມ 0.
limitintegerບໍ່ຄັ້ງລະ 1–100 ເຫດການ, ຄ່າເລີ່ມ 100.
ຄຳຮ້ອງຂໍ
curl --fail-with-body --request POST \
  "https://im.ez7.life/bot-api/${EZLIFE_BOT_TOKEN}/getUpdates" \
  --header 'Content-Type: application/json' \
  --data '{"offset": 0, "limit": 100}'
ຜົນຕອບກັບ
{
  "ok": true,
  "result": [
    {
      "update_id": 120,
      "message": {
        "message_id": "EXAMPLE_MESSAGE_ID",
        "date": 1794297600,
        "chat": {
          "id": "1000000001",
          "type": "private"
        },
        "from": {
          "id": "1000000001",
          "display_name": "Example User"
        },
        "text": "ຕັ້ງຄ່າພາສາ",
        "content_type": 101,
        "raw_content": "{\n  \"content\": \"ຕັ້ງຄ່າພາສາ\"\n}"
      }
    }
  ]
}
ພາຣາມິເຕີຄຳອະທິບາຍ
update_idID ເພີ່ມຂຶ້ນສຳລັບຢືນຢັນການປະມວນຜົນ.
message_idID ຂໍ້ຄວາມແພລດຟອມ.
dateເວລາ Unix ໜ່ວຍວິນາທີ.
chatID ຜູ້ສົ່ງສ່ວນຕົວ ຫຼື ID ກຸ່ມ ພ້ອມ private/group.
fromID ແລະ ຊື່ສະແດງຜູ້ສົ່ງຕົວຈິງ.
textເນື້ອຫາຂໍ້ຄວາມ; ປະເພດອື່ນອາດວ່າງ.
content_typeປະເພດເນື້ອຫາ, 101 ແມ່ນຂໍ້ຄວາມ.
raw_contentເນື້ອຫາດັ້ງເດີມຂອງຮູບ, ໄຟລ໌ ແລະ ເຫດການອື່ນ.

ໂປຣແກຣມ Python ສະບັບເຕັມ

#

ຕົວຢ່າງເຕັມໃຊ້ແຕ່ໄລບຣາຣີມາດຕະຖານ Python, ຮັບ /start, /ping ແລະ ຊື່ປຸ່ມ, ເກັບ offset. ໃຫ້ແລ່ນໃນໂຟນເດີສ່ວນຕົວ.

ແທນທີ່ປຸ່ມຕົວຢ່າງດ້ວຍວຽກຈິງ. ຄຳສັ່ງຊື້/ຈ່າຍເງິນຕ້ອງປ້ອງກັນຊ້ຳກ່ອນເກັບຄວາມຄືບໜ້າ.

bot.py
import json
import os
import time
import urllib.error
import urllib.request
from pathlib import Path

TOKEN = os.environ["EZLIFE_BOT_TOKEN"]
BASE = "https://im.ez7.life/bot-api/" + TOKEN
OFFSET_FILE = Path("bot-offset.json")
MENU = [
  [
    "ຕັ້ງຄ່າພາສາ",
    "ຕິດຕາມພັດສະດຸ"
  ],
  [
    "ຕັ້ງຄ່າແຈ້ງເຕືອນ",
    "ປ້ອນເລກພັດສະດຸ"
  ]
]

class ApiFailure(Exception):
    pass

class NoRedirect(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, *args):
        return None

HTTP = urllib.request.build_opener(NoRedirect())

def api(method, payload):
    req = urllib.request.Request(
        BASE + "/" + method,
        data=json.dumps(payload, ensure_ascii=False).encode("utf-8"),
        headers={"Content-Type": "application/json"},
        method="POST",
    )
    try:
        with HTTP.open(req, timeout=20) as response:
            body = json.load(response)
    except urllib.error.HTTPError as error:
        raise ApiFailure("HTTP " + str(error.code)) from None
    except (urllib.error.URLError, TimeoutError, OSError, ValueError):
        raise ApiFailure("Network or response failure") from None
    if not body.get("ok"):
        raise ApiFailure("API error " + str(body.get("error_code", "unknown")))
    return body["result"]

def handle(update):
    message = update.get("message", {})
    chat = message.get("chat", {})
    text = message.get("text", "")
    if not chat.get("id"):
        return
    payload = {"chat_id": str(chat["id"]),
               "chat_type": chat.get("type", "private")}
    if text == "/start" and payload["chat_type"] == "private":
        payload.update(text="ເລືອກບໍລິການ:", reply_markup={
            "keyboard": MENU, "resize_keyboard": True,
            "one_time_keyboard": False,
        })
    elif text == "/ping":
        payload["text"] = "pong"
    elif text in [label for row in MENU for label in row]:
        payload["text"] = "ດຳເນີນການສຳເລັດ."
    else:
        return
    api("sendMessage", payload)

def save_offset(value):
    temp = OFFSET_FILE.with_suffix(".tmp")
    fd = os.open(temp, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600)
    with os.fdopen(fd, "w", encoding="utf-8") as stream:
        json.dump(value, stream)
        stream.flush()
        os.fsync(stream.fileno())
    os.replace(temp, OFFSET_FILE)

def main():
    offset = json.loads(OFFSET_FILE.read_text()) if OFFSET_FILE.exists() else 0
    if isinstance(offset, bool) or not isinstance(offset, int) or offset < 0:
        raise ValueError("Invalid offset file")
    delay = 1
    while True:
        try:
            updates = api("getUpdates", {"offset": offset, "limit": 100})
            for update in updates:
                handle(update)
                next_offset = int(update["update_id"]) + 1
                save_offset(next_offset)
                offset = next_offset
            delay = 1
            time.sleep(2)
        except (ApiFailure, OSError, ValueError):
            print("Processing failed; offset retained. Check configuration.", flush=True)
            time.sleep(delay)
            delay = min(delay * 2, 30)

if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        pass

ກຸ່ມ ແລະ ຂອບເຂດຂໍ້ຄວາມ

#

ບັອດຕ້ອງເຂົ້າກຸ່ມກ່ອນ. ຄ່າເລີ່ມຕົ້ນໃຫ້ເຈົ້າຂອງອະນຸມັດ; ກວດທີ່ແຊັດບັອດ → ເພີ່ມເຕີມ → ຕັ້ງຄ່າບັອດ → ກຸ່ມທີ່ເຂົ້າຮ່ວມ.

ໂໝດສ່ວນຕົວກຸ່ມປິດໂດຍຄ່າເລີ່ມ; ກຸ່ມທີ່ເປີດຮັບບໍ່ຕ້ອງ @ບັອດ. ຂໍ້ຄວາມຕົນເອງບໍ່ເຂົ້າຄິວຕົນ; ແຈ້ງການວົງຈອນກຸ່ມບໍ່ແມ່ນຂໍ້ຄວາມທຳມະດາ.

ສະວິດຮັບແຕ່ລະກຸ່ມຄວບຄຸມເຫດການ, ສົ່ງຕໍ່ ແລະ ຕອບອັດຕະໂນມັດ. ບັອດຂອງຜູ້ໃຊ້ສົ່ງຕໍ່ຂໍ້ຄວາມກຸ່ມທີ່ເປີດໄປແຊັດເຈົ້າຂອງພ້ອມຊື່ກຸ່ມ. ສິດພາຍນອກຍັງຄວບຄຸມ API ແລະ ເຫດການ.

ຕັ້ງຄ່າບັອດ ແລະ ຕອບອັດຕະໂນມັດ

#

ເຈົ້າຂອງເທົ່ານັ້ນຕັ້ງຄ່າອະນຸມັດກຸ່ມ, ເຂົ້າເຖິງພາຍນອກ, ຮັບລາຍກຸ່ມ ແລະ ຕອບຕາມຄຳສຳຄັນ. ປິດພາຍນອກຍັງເກັບ Token ແຕ່ປະຕິເສດ API.

ສູງສຸດ 50 ກົດ, ຄຳສຳຄັນ 1–100 ຕົວ, ຄຳຕອບ 1–2000. ກວດການມີຄຳຕາມລຳດັບໂດຍບໍ່ແຍກພິມໃຫຍ່/ນ້ອຍ, ຕອບດ້ວຍກົດທຳອິດທີ່ເປີດແລະກົງ.

ຕອບອັດຕະໂນມັດໃນແຊັດສ່ວນຕົວ/ກຸ່ມທີ່ເປີດຮັບ, ປ້ອງກັນບັອດຕອບຕໍ່ກັນ. AI API ຍັງເປັນແຜນ, ບໍ່ມີວິທີສາທາລະນະ.

ຈັດການຂໍ້ຜິດພາດ

#

ຂໍ້ຜິດພາດເບື້ອງຕົ້ນເຊັ່ນ JSON ບໍ່ຖືກ ຫຼື ເນື້ອຫາໃຫຍ່ເກີນ ໃຊ້ errorCode ແລະ message. ຂໍ້ຜິດພາດ API ອື່ນໃຊ້ error_code ແລະ description. ກວດ HTTP ແລະ ok ກ່ອນ.

ຜົນຕອບກັບ
{
  "ok": false,
  "error_code": 422,
  "description": "chat_id 与 1–5000 字的 text 为必填"
}
ສະຖານະວິທີແກ້ໄຂ
400JSON ບໍ່ຖືກ. ກວດລະຫັດອັກສອນ ແລະ ໄວຍາກອນ.
401Token ບໍ່ຖືກ, ຖອນ, ອອກໃໝ່ ຫຼື ບັອດຖືກລະງັບ. ອັບເດດຂໍ້ມູນຮັບຮອງ.
403ເຈົ້າຂອງປິດພາຍນອກ. ເປີດໃນຕັ້ງຄ່າບັອດ.
404ກວດເສັ້ນທາງ /bot-api/, ຮູບແບບ Token ແລະ ຊື່ວິທີ.
409ກຳລັງອັບເດດແປ້ນບັອດ/ຜູ້ໃຊ້ນີ້. ລໍຖ້າແລ້ວລອງໃໝ່.
413ຄຳຮ້ອງຂໍເກີນ 1 MiB. ຫຼຸດຂະໜາດ.
422ແກ້ພາຣາມິເຕີ, ລະຫັດ ຫຼື ໂຄງສ້າງແປ້ນ.
500ຜິດພາດຊົ່ວຄາວ. ຄົງ offset ແລະ ເພີ່ມເວລາລໍ; ກວດຜົນສົ່ງກ່ອນລອງໃໝ່.

ຂໍ້ຈຳກັດ ແລະ ການຮອງຮັບ

#

ຄູ່ມືນີ້ອີງ API ປັດຈຸບັນ. ຍັງບໍ່ມີການສົ່ງສື່, ປຸ່ມ inline callback, ຂໍລາຍຊື່/ທີ່ຕັ້ງ ຫຼື webhook ສາທາລະນະ.

ແປ້ນຕ້ອງການ Web/H5 ລຸ້ນປັດຈຸບັນ. ແອັບທີ່ຝັງ H5 ເກົ່າຕ້ອງອັບເດດເພື່ອເຫັນປຸ່ມໃໝ່.

ຄຳຮ້ອງຂໍທັງໝົດສູງສຸດ 1 MiB. ປັບຄວາມຖີ່ຕາມພາລະຈິງ; ຄູ່ມືບໍ່ຮັບປະກັນອັດຕາຄົງທີ່. ສັນຍານຄວາມສາມາດກຸ່ມບໍ່ແທນການເຂົ້າຮ່ວມ, ອະນຸມັດ ແລະ ສິດຮັບ.