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
chat_idTuri: number
Joriy chat ID raqami.
console.log(chat_id); // 123456789message
messageTuri: object
Foydalanuvchidan kelgan xabar ma'lumotlari.
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
callback_queryTuri: object
Inline button bosilganda kelgan callback ma'lumotlari.
data
string
Callback data qiymati
first_name
string
Foydalanuvchi ismi
context
contextTuri: 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)
get_context(key)Context'dan qiymat olish.
Parametrlar:
key
string
Kalit nomi
Qaytaradi: any - Topilgan qiymat yoki undefined
set_context(key, value)
set_context(key, value)Context'ga qiymat saqlash.
Parametrlar:
key
string
Kalit nomi
value
any
Saqlanadigan qiymat
Qaytaradi: boolean - Muvaffaqiyat holati
has_context(key)
has_context(key)Context'da kalit mavjudligini tekshirish.
Parametrlar:
key
string
Kalit nomi
Qaytaradi: boolean
delete_context(key)
delete_context(key)Context'dan kalitni o'chirish.
Parametrlar:
key
string
Kalit nomi
Qaytaradi: boolean
clear_context()
clear_context()Barcha foydalanuvchi kalitlarini tozalash. Tizim kalitlari (message, callback_query, message_id_*) o'chirilmaydi.
Qaytaradi: boolean
get_all_context()
get_all_context()Barcha context ma'lumotlarini ob'ekt sifatida olish.
Qaytaradi: object
Telegram Bot API
send_message(options)
send_message(options)Matnli xabar yuborish.
Parametrlar:
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)
send_photo(options)Rasm yuborish.
Parametrlar:
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)
send_video(options)Video yuborish.
Parametrlar:
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)
send_audio(options)Audio yuborish.
Parametrlar:
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)
send_document(options)Fayl yuborish.
Parametrlar:
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)
edit_message_text(options)Mavjud xabar matnini o'zgartirish.
Parametrlar:
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)
edit_inline_button(options)Xabar keyboard'ini o'zgartirish.
Parametrlar:
message_id
number
❌*
Xabar ID
node_id
string
❌*
Node ID
reply_markup
object
✅
Yangi keyboard
Qaytaradi: boolean
delete_message(options)
delete_message(options)Xabarni o'chirish.
Parametrlar:
message_id
number
❌*
Xabar ID
node_id
string
❌*
Node ID
Yoki to'g'ridan-to'g'ri number:
Qaytaradi: boolean
log(message)
log(message)Serverga log yozish.
Parametrlar:
message
string
Log xabari
console.log(...args)
console.log(...args)Console'ga chiqarish (serverda saqlanadi).
HTTP So'rovlar
Tashqi API'larga so'rovlar yuborish uchun funksiyalar.
http_request(options)
http_request(options)Umumiy HTTP so'rov yuborish.
Parametrlar:
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?)
http_get(url, options?)GET so'rov (qisqa shakl).
Parametrlar:
url
string
✅
So'rov URL
options
object
❌
Qo'shimcha parametrlar (headers, timeout)
Qaytaradi: object (http_request bilan bir xil)
http_post(url, body?, options?)
http_post(url, body?, options?)POST so'rov (qisqa shakl).
Parametrlar:
url
string
✅
So'rov URL
body
object
❌
So'rov tanasi
options
object
❌
Qo'shimcha parametrlar
Qaytaradi: object
http_put(url, body?, options?)
http_put(url, body?, options?)PUT so'rov (qisqa shakl).
Parametrlar: http_post bilan bir xil
http_delete(url, options?)
http_delete(url, options?)DELETE so'rov (qisqa shakl).
Parametrlar:
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?)
db_find_one(collection, filter?)Bitta hujjatni topish.
Parametrlar:
collection
string
✅
Kolleksiya nomi
filter
object
❌
Qidiruv filtri
Qaytaradi: object
db_find(collection, filter?, options?)
db_find(collection, filter?, options?)Bir nechta hujjatlarni topish.
Parametrlar:
collection
string
✅
Kolleksiya nomi
filter
object
❌
Qidiruv filtri
options
object
❌
Qo'shimcha parametrlar
Options:
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)
db_insert(collection, document)Yangi hujjat qo'shish.
Parametrlar:
collection
string
✅
Kolleksiya nomi
document
object
✅
Saqlanadigan hujjat
Qaytaradi: object
db_update(collection, filter, update)
db_update(collection, filter, update)Hujjatni yangilash.
Parametrlar:
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)
db_delete(collection, filter)Hujjatni o'chirish.
Parametrlar:
collection
string
✅
Kolleksiya nomi
filter
object
✅
Qidiruv filtri (bo'sh bo'lishi mumkin emas!)
Qaytaradi: object
db_count(collection, filter?)
db_count(collection, filter?)Hujjatlar sonini hisoblash.
Parametrlar:
collection
string
✅
Kolleksiya nomi
filter
object
❌
Qidiruv filtri
Qaytaradi: object
Keyboard Yaratish
reply_markup parametri orqali keyboard yaratish.
Inline Keyboard
Button turlari:
text
Button matni
callback_data
Callback qiymati (bosilganda callback_query'ga keladi)
url
Tashqi havola
Reply Keyboard
Reply keyboard xususiyatlari:
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:
text
string
Button matni
request_contact
boolean
Kontakt so'rash
request_location
boolean
Joylashuv so'rash
Misollar
Xatoliklarni Boshqarish
Barcha funksiyalar xatoliklarni qaytaradi. Har doim success maydonini tekshiring:
Muhim Eslatmalar
Xavfsizlik:
db_updatevadb_deletebo'sh filter bilan ishlamaydiTimeout: HTTP so'rovlar 30 sekunddan keyin timeout bo'ladi
Context: Context faqat shu foydalanuvchi sessiyasi davomida saqlanadi
MongoDB:
_idstring sifatida berilsa, avtomatik ObjectID'ga o'zgartiriladiHTML: Default
parse_mode"HTML" -<b>,<i>,<code>taglarini ishlatish mumkin