Custom code

Bu hujjat CustomCodeNode'da ishlatilishi mumkin bo'lgan barcha funksiyalar, o'zgaruvchilar va imkoniyatlarni tasvirlaydi.


Kirish

CustomCodeNode JavaScript kodini bajarish imkonini beradi. Kod Goja JavaScript engine orqali ishga tushiriladi.

// Oddiy misol
var name = message.first_name;
send_message({
    text: "Salom, " + name + "!"
});

Global O'zgaruvchilar

CustomCodeNode'da quyidagi global o'zgaruvchilar mavjud:

chat_id

Turi: number Joriy chat ID raqami.

console.log(chat_id); // 123456789

message

Turi: object Foydalanuvchidan kelgan xabar ma'lumotlari.

Xususiyat
Turi
Tavsif

text

string

Xabar matni

first_name

string

Foydalanuvchi ismi

last_name

string

Foydalanuvchi familiyasi

username

string

Telegram username

contact

object

Kontakt ma'lumotlari (agar yuborilgan bo'lsa)

contact.phone_number

string

Telefon raqami

contact.first_name

string

Kontakt ismi

location

object

Joylashuv ma'lumotlari (agar yuborilgan bo'lsa)

location.latitude

number

Kenglik

location.longitude

number

Uzunlik

callback_query

Turi: object Inline button bosilganda kelgan callback ma'lumotlari.

Xususiyat
Turi
Tavsif

data

string

Callback data qiymati

first_name

string

Foydalanuvchi ismi

context

Turi: object Barcha context ma'lumotlarini o'z ichiga olgan ob'ekt. message va callback_query dan tashqari barcha kalitlar.


Context Boshqarish

Context - bu foydalanuvchi sessiyasi davomida saqlanadigan ma'lumotlar.

get_context(key)

Context'dan qiymat olish.

Parametrlar:

Parametr
Turi
Tavsif

key

string

Kalit nomi

Qaytaradi: any - Topilgan qiymat yoki undefined

set_context(key, value)

Context'ga qiymat saqlash.

Parametrlar:

Parametr
Turi
Tavsif

key

string

Kalit nomi

value

any

Saqlanadigan qiymat

Qaytaradi: boolean - Muvaffaqiyat holati

has_context(key)

Context'da kalit mavjudligini tekshirish.

Parametrlar:

Parametr
Turi
Tavsif

key

string

Kalit nomi

Qaytaradi: boolean

delete_context(key)

Context'dan kalitni o'chirish.

Parametrlar:

Parametr
Turi
Tavsif

key

string

Kalit nomi

Qaytaradi: boolean

clear_context()

Barcha foydalanuvchi kalitlarini tozalash. Tizim kalitlari (message, callback_query, message_id_*) o'chirilmaydi.

Qaytaradi: boolean

get_all_context()

Barcha context ma'lumotlarini ob'ekt sifatida olish.

Qaytaradi: object


Telegram Bot API

send_message(options)

Matnli xabar yuborish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

text

string

Xabar matni

parse_mode

string

Format: "HTML", "Markdown". Default: "HTML"

disable_web_page_preview

boolean

Link preview o'chirish

disable_notification

boolean

Ovozni o'chirish

reply_markup

object

Keyboard (pastda batafsil)

Qaytaradi: boolean - Muvaffaqiyat holati

send_photo(options)

Rasm yuborish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

photo

string

Rasm URL yoki file_id

caption

string

Rasm ostidagi matn

parse_mode

string

Caption formati

disable_notification

boolean

Ovozni o'chirish

reply_markup

object

Keyboard

Qaytaradi: boolean

send_video(options)

Video yuborish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

video

string

Video URL yoki file_id

caption

string

Video ostidagi matn

parse_mode

string

Caption formati

disable_notification

boolean

Ovozni o'chirish

reply_markup

object

Keyboard

Qaytaradi: boolean

send_audio(options)

Audio yuborish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

audio

string

Audio URL yoki file_id

caption

string

Audio ostidagi matn

parse_mode

string

Caption formati

disable_notification

boolean

Ovozni o'chirish

reply_markup

object

Keyboard

Qaytaradi: boolean

send_document(options)

Fayl yuborish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

document

string

Fayl URL yoki file_id

caption

string

Fayl ostidagi matn

parse_mode

string

Caption formati

disable_notification

boolean

Ovozni o'chirish

reply_markup

object

Keyboard

Qaytaradi: boolean

edit_message_text(options)

Mavjud xabar matnini o'zgartirish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

text

string

Yangi matn

message_id

number

❌*

Xabar ID

node_id

string

❌*

Node ID (context'dan message_id olish uchun)

parse_mode

string

Format

disable_web_page_preview

boolean

Link preview o'chirish

reply_markup

object

Yangi keyboard

*message_id yoki node_id dan biri majburiy

Qaytaradi: boolean

edit_inline_button(options)

Xabar keyboard'ini o'zgartirish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

message_id

number

❌*

Xabar ID

node_id

string

❌*

Node ID

reply_markup

object

Yangi keyboard

Qaytaradi: boolean

delete_message(options)

Xabarni o'chirish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

message_id

number

❌*

Xabar ID

node_id

string

❌*

Node ID

Yoki to'g'ridan-to'g'ri number:

Qaytaradi: boolean

log(message)

Serverga log yozish.

Parametrlar:

Parametr
Turi
Tavsif

message

string

Log xabari

console.log(...args)

Console'ga chiqarish (serverda saqlanadi).


HTTP So'rovlar

Tashqi API'larga so'rovlar yuborish uchun funksiyalar.

http_request(options)

Umumiy HTTP so'rov yuborish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

url

string

So'rov URL

method

string

HTTP metod: GET, POST, PUT, DELETE. Default: GET

headers

object

HTTP sarlavhalar

body

object/string

So'rov tanasi (POST/PUT uchun)

timeout

number

Kutish vaqti (sekundlarda). Default: 30

Qaytaradi: object

http_get(url, options?)

GET so'rov (qisqa shakl).

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

url

string

So'rov URL

options

object

Qo'shimcha parametrlar (headers, timeout)

Qaytaradi: object (http_request bilan bir xil)

http_post(url, body?, options?)

POST so'rov (qisqa shakl).

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

url

string

So'rov URL

body

object

So'rov tanasi

options

object

Qo'shimcha parametrlar

Qaytaradi: object

http_put(url, body?, options?)

PUT so'rov (qisqa shakl).

Parametrlar: http_post bilan bir xil

http_delete(url, options?)

DELETE so'rov (qisqa shakl).

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

url

string

So'rov URL

options

object

Qo'shimcha parametrlar

Qaytaradi: object


MongoDB Funksiyalari

Ma'lumotlar bazasi bilan ishlash uchun funksiyalar.

db_find_one(collection, filter?)

Bitta hujjatni topish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

collection

string

Kolleksiya nomi

filter

object

Qidiruv filtri

Qaytaradi: object

db_find(collection, filter?, options?)

Bir nechta hujjatlarni topish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

collection

string

Kolleksiya nomi

filter

object

Qidiruv filtri

options

object

Qo'shimcha parametrlar

Options:

Parametr
Turi
Tavsif

limit

number

Maksimal hujjatlar soni

skip

number

O'tkazib yuborilgan hujjatlar soni (pagination)

sort

object

Saralash: { field: 1 } (o'sish) yoki { field: -1 } (kamayish)

Qaytaradi: object

db_insert(collection, document)

Yangi hujjat qo'shish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

collection

string

Kolleksiya nomi

document

object

Saqlanadigan hujjat

Qaytaradi: object

db_update(collection, filter, update)

Hujjatni yangilash.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

collection

string

Kolleksiya nomi

filter

object

Qidiruv filtri (bo'sh bo'lishi mumkin emas!)

update

object

Yangilanishlar

Update formatlari:

Qaytaradi: object

db_delete(collection, filter)

Hujjatni o'chirish.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

collection

string

Kolleksiya nomi

filter

object

Qidiruv filtri (bo'sh bo'lishi mumkin emas!)

Qaytaradi: object

db_count(collection, filter?)

Hujjatlar sonini hisoblash.

Parametrlar:

Parametr
Turi
Majburiy
Tavsif

collection

string

Kolleksiya nomi

filter

object

Qidiruv filtri

Qaytaradi: object


Keyboard Yaratish

reply_markup parametri orqali keyboard yaratish.

Inline Keyboard

Button turlari:

Xususiyat
Tavsif

text

Button matni

callback_data

Callback qiymati (bosilganda callback_query'ga keladi)

url

Tashqi havola

Reply Keyboard

Reply keyboard xususiyatlari:

Xususiyat
Turi
Tavsif

resize_keyboard

boolean

Keyboard o'lchamini moslashtirish

one_time_keyboard

boolean

Bir marta bosilgandan keyin yashirish

selective

boolean

Faqat tanlangan foydalanuvchilarga ko'rsatish

Button xususiyatlari:

Xususiyat
Turi
Tavsif

text

string

Button matni

request_contact

boolean

Kontakt so'rash

request_location

boolean

Joylashuv so'rash


Misollar

1

Foydalanuvchi ro'yxatdan o'tkazish

2

API'dan ma'lumot olish

3

Hisoblagich

4

Buyurtma yaratish

5

Pagination bilan ro'yxat


Xatoliklarni Boshqarish

Barcha funksiyalar xatoliklarni qaytaradi. Har doim success maydonini tekshiring:


Muhim Eslatmalar

  1. Xavfsizlik: db_update va db_delete bo'sh filter bilan ishlamaydi

  2. Timeout: HTTP so'rovlar 30 sekunddan keyin timeout bo'ladi

  3. Context: Context faqat shu foydalanuvchi sessiyasi davomida saqlanadi

  4. MongoDB: _id string sifatida berilsa, avtomatik ObjectID'ga o'zgartiriladi

  5. HTML: Default parse_mode "HTML" - <b>, <i>, <code> taglarini ishlatish mumkin