Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Библиотека для работы с Telegram WebApp API, предоставляющая удобный интерфейс для взаимодействия с функциями Telegram Mini Apps. Реализована на TypeScript с поддержкой строгой типизации.
Управление внешним видом WebApp (цвета, кнопки)
Работа с платежами и инвойсами
Взаимодействие с QR-сканером
Управление буфером обмена
Если у вас возникли вопросы или проблемы:
(Для багрепортов и запросов функций)
Написать в Telegram: (Быстрая помощь в реальном времени)
npm install @apiteam/twa-bridgeurl
string
URL-адрес, который должен быть открыт приложением Telegram. Должен быть полным путем с протоколом https.
try_instant_view
boolean
[v6.4] Необязательно. Ссылка будет открыта в режиме мгновенного просмотра, если это возможно.
try_browser
boolean
[v7.6] Необязательно.
Минимальная версия Telegram API: 6.7+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
query
string
Текст, который необходимо вставить в поле ввода после текущего имени бота. Максимальная длина — 256 символов.
chat_types
"users", "bots", "groups", "channels"
Необязательный. Список типов чатов, которые можно выбрать для отправки сообщения. Может быть пустым списком.
bridgeOpenLink({ url: "https://t.me/apiteamru" }){
status: boolean | 'not_supported'
}// Использование системного цвета
bridgeSwitchInlineQuery({ query: "data", chat_types: ["users", "groups"] }){
status: boolean | 'not_supported'
}Метод, который предлагает пользователю добавить мини-приложение на главный экран.
Метод, который фиксирует ориентацию мини-приложения в текущем режиме (портретном или альбомном). После блокировки ориентация остается фиксированной, независимо от поворота устройства. Это полезно, есл
locked
boolean
Включает/Выключает фиксацию экрана
Минимальная версия Telegram API: 6.1+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
color
string
Цвет фона
"#ff0000"
color_key
string
Цвет фона
"bg_color"
bg_color
Основной фон
secondary_bg_color
Вторичный фон
Минимальная версия Telegram API: 8.0+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
custom_emoji_id
string
Идентификатор
duration
number
Необязательно. Продолжительность, в течение которой статус будет оставаться установленным, в секундах.
Минимальная версия Telegram API: 8.0+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
const result = await bridgeRequestEmojiStatus({})
bridgeAddToHomeScreen({}){
status: boolean | 'not_supported'
}bridgeSetupOrientation({ locked: true }){
status: boolean | 'not_supported'
}// Установка HEX-цвета
const result = bridgeSetHeaderColor({ color: '#3498db' })
// Использование системного цвета
bridgeSetHeaderColor({ color_key: 'bg_color' }){
status: boolean | 'not_supported'
}const result = await bridgeSetEmojiStatus({ custom_emoji_id: "123" }){
status: boolean | 'not_supported'
}{
status: boolean | 'not_supported'
}Метод, который открывает собственный редактор историй с медиа, указанными в параметре media_url как HTTPS URL.
Метод, который устанавливает цвет фона приложения в формате #RRGGBB. Вы также можете использовать ключевые слова `bg_color` и `secondary_bg_color`.
Метод, который отображает собственное всплывающее окно, предлагающее пользователю загрузить файл.
Метод, который устанавливает цвет заголовка приложения в формате #RRGGBB. Вы также можете использовать ключевые слова `bg_color` и `secondary_bg_color`.
Метод, который включает и выключает вертикальные свайпы для закрытия или сворачивания Mini App.
Метод, который запрашивает открытие мини-приложения в полноэкранном режиме.
Минимальная версия Telegram API: 8.0+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
Методы Telegram Mini Apps — это события, которые выполняют некоторые предопределенные действия. Они всегда вызываются Mini App.
В этом разделе содержится список доступных методов для вызова с их именами, описанием и параметрами. В случае, если Mini App не удовлетворяет минимальному требованию версии метода, ничего не произойдет. Собственное приложение просто не знает, какой метод следует вызывать, пока он не определен внутри.
iframe_readyУведомляет родительский iframe о готовности текущего фрейма. Этот метод используется только в веб-версии Telegram. В результате Mini App получит событие set_custom_style.
reload_supported
boolean
Необязательно. True, если текущее мини-приложение поддерживает собственную перезагрузку.
Уведомляет родительский iframe о том, что текущий iframe будет перезагружен.
Предлагает пользователю добавить Mini App на домашний экран. Обратите внимание, что если устройство не может определить статус установки, событие может не быть получено, даже если значок был добавлен.
Запрашивает текущие настройки биометрии.
Открывает настройки биометрического доступа для ботов. Полезно, когда нужно запросить биометрический доступ у пользователей, которые его еще не предоставили.
Запрашивает разрешение на использование биометрии.
reason
string
Необязательно. Текст, который будет отображаться пользователю во всплывающем окне, описывающий, почему боту необходим доступ к биометрии, 0-128 символов.
Аутентифицирует пользователя с использованием биометрии.
reason
string
Необязательно. Текст, который будет отображаться пользователю во всплывающем окне, описывающий, почему вы просите его пройти аутентификацию и какие действия вы предпримете на основе этой аутентификации, 0–128 символов.
Обновляет биометрический токен в безопасном хранилище на устройстве. Чтобы удалить токен, передайте пустую строку.
token
string
Токен для хранения. Максимальная длина 1024 символа.
Отправляет запрос в собственное приложение Telegram, чтобы проверить, добавлено ли текущее мини-приложение на главный экран устройства.
Запрашивает состояние доступности функциональности, связанной с местоположением.
Закрывает мини-приложение.
Закрывает QR-сканер. Приложение Telegram создает событие scan_qr_popup_closed.
Отправляет данные боту. При вызове этого метода боту отправляется служебное сообщение, содержащее данные длиной до 4096 байт. Затем Mini App будет закрыт.
Чтобы получить больше информации, взгляните на поле web_app_data в классе Message.
data
string
Данные для отправки боту. Не должны иметь размер более 4096 байт.
Запрашивает выход из полноэкранного режима для мини-приложения.
Разворачивает мини-приложение.
req_id
string
Уникальный идентификатор текущего вызова.
method
string
Имя метода.
params
unknown
Параметры согласно method.
Открывает счет-фактуру по указанному слагу. Подробнее о счетах-фактурах в этой документации.
slug
string
Уникальный идентификатор счета-фактуры.
Открывает ссылку в браузере по умолчанию. Мини-приложение не будет закрыто.
url
string
URL-адрес, который должен быть открыт приложением Telegram. Должен быть полным путем с протоколом https.
try_instant_view
boolean
[v6.4] Необязательно. Ссылка будет открыта в режиме мгновенного просмотра, если это возможно.
try_browser
boolean
[v7.6] Необязательно. Ссылка будет открыта в браузере, если это возможно.
Открывает настройки доступа к местоположению для ботов. Полезно, когда вам нужно запросить доступ к местоположению у пользователей, которые еще не предоставили его.
Открывает новое всплывающее окно. Когда пользователь закрывает всплывающее окно, Telegram создает событие popup_closed.
title
string
Текст, который будет отображаться в заголовке всплывающего окна, 0-64 символа.
message
string
Сообщение, которое будет отображаться в тексте всплывающего окна, от 1 до 256 символов.
buttons
PopupButton[]
Список кнопок, которые будут отображаться во всплывающем окне, 1-3 кнопки
id
string
Идентификатор кнопки, 0-64 символа.
type
PopupButtonType
Тип кнопки. "default", "destructive", "ok", "close", "cancel"
text
PopupButton[]
Текст, который будет отображаться на кнопке, 0-64 символа. Игнорируется, если type в ok, close или cancel.
default
Кнопка со стилем по умолчанию.
destructive
Кнопка со стилем, указывающим на деструктивное действие (например, «Удалить» и т. д.)
ok
Кнопка с локализованным текстом «ОК»
close
Кнопка с локализованным текстом «Закрыть»
cancel
Кнопка с локализованным текстом «Отмена»
Открывает QR-сканер. Когда сканер был закрыт, приложение Telegram создает событие scan_qr_popup_closed. Когда сканер считывает QR, Telegram создает событие qr_text_received.
text
string
Необязательно. Текст, который будет отображаться в QR-сканере.
widget_link.name
string
Необязательно. Имя, которое будет отображаться для ссылки виджета. Максимальная длина — 48 символа.
media
string
Ссылка на контент, только HTTPS
text
string
Необязательно. Текст, который необходимо вставить в поле ввода после текущего имени бота. Максимальная длина — 2048 символов.
widget_link
Object
Необязательно.
widget_link.url
string
URL-адрес, который будет включен в историю.
1
Текст (text) слишком длинный
2
Имя (widget_link.name) ссылки слишком длинное
color
string
Цвет фона
"#ff0000", "bg_color"
bg_color
Основной фон
secondary_bg_color
Вторичный фон
url
string
HTTPS URL-адрес файла для загрузки.
file_name
string
Предлагаемое имя для загружаемого файла.
need_confirmation
boolean
Будет ли пользователю выдано уведомление в случае закрытия приложения?
allow_vertical_swipe
boolean
Включает/Выключает свайп
unsupported
Функция не поддерживается, и невозможно добавить значок на главный экран.
unknown
Функция поддерживается, и значок можно добавить, но невозможно определить, был ли он уже добавлен.
added
Значок уже добавлен на главный экран.
unknown
Значок не был добавлен на главный экран.
is_full
boolean
Включение/Выключение полноэкранного режима
Минимальная версия Telegram API: 6.9+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
req_id
string
Необязательный. Уникальный идентификатор
method
string
Имя метода.
params
unknown
Параметры согласно методу.
Минимальная версия Telegram API: 8.0+
Telegram Web
Telegram Desktop
Telegram Mobile (iOS/Android)
msg_id
number
Идентификатор
bridgeShareToStory({
media: "https://i1.sndcdn.com/artworks-000196299556-zqzzcl-t500x500.jpg",
text: "Каспийский Груз 18+ ft. Rigos"
}){
status: boolean | 'not_supported'
error_id: undefined | 1 | 2
}// Установка HEX-цвета
const result = bridgeSetBackgroundColor({ color: '#3498db' })
// Использование системного цвета
bridgeSetBackgroundColor({ color: 'bg_color' }){
status: boolean | 'not_supported'
}const result = await bridgeDownloadFile({
url: "https://i1.sndcdn.com/artworks-000196299556-zqzzcl-t500x500.jpg",
file_name: "Каспийский Груз 18+ ft. Rigos"
})
{
status: boolean | 'not_supported'
}// Использование системного цвета
bridgeSetupClosingBehavior({ need_confirmation: true }){
status: boolean | 'not_supported'
}bridgeSetupSwipeBehavior({ allow_vertical_swipe: false }){
status: boolean | 'not_supported'
}const result = await bridgeCheckHomeScreen({}){
status: boolean | 'not_supported'
data: {
status: "unsupported" | "unknown" | "added" | "missed"
}
}bridgeSetupFullScreen({ is_full:true }){
status: boolean | 'not_supported'
}// Использование системного цвета
bridgeInvokeCustomMethod({ method: "test_method", params: { test_id: 1 } }){
status: boolean | 'not_supported'
data: undefined | {
req_id: string
result: undefined | unknown
error: undefined | string
}
}bridgeShareMessage({ msg_id: 123 }){
status: boolean | 'not_supported'
}Метод, который открывает ссылку Telegram внутри приложения Telegram. Мини-приложение не будет закрыто после вызова этого метода.
path_full
string
Должно быть значение, взятое из ссылки в следующем формате: https://t.me/{path_full}
force_request
boolean
Необязательно.
bridgeOpenTgLink({ path_full: "apiteamru" }){
status: boolean | 'not_supported'
}