Only this pageAll pages
Powered by GitBook
1 of 20

TWA Bridge

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Telegram Bridge

Описание

Библиотека для работы с Telegram WebApp API, предоставляющая удобный интерфейс для взаимодействия с функциями Telegram Mini Apps. Реализована на TypeScript с поддержкой строгой типизации.

Полная документация

Основные возможности

  • Управление внешним видом WebApp (цвета, кнопки)

  • Работа с платежами и инвойсами

  • Взаимодействие с QR-сканером

  • Управление буфером обмена

Установка

Поддержка

Если у вас возникли вопросы или проблемы:

Способы связи

  • (Для багрепортов и запросов функций)

  • Написать в Telegram: (Быстрая помощь в реальном времени)

Обработка системных событий Telegram
Документация API
Создать issue в GitHub
@apiteam_help
npm install @apiteam/twa-bridge

Функции

openLink

Метод, который открывает ссылку во внешнем браузере. Мини-приложение не будет закрыто.

web_app_open_link

Поддержка

Минимальная версия Telegram API: 6.2+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

switchInlineQuery

Метод, который вставляет имя пользователя бота и указанный встроенный запрос в поле ввода текущего чата. Запрос может быть пустым, в этом случае будет вставлено только имя пользователя бота. Если был

web_app_switch_inline_query

url

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'
}

addToHomeScreen

Метод, который предлагает пользователю добавить мини-приложение на главный экран.

web_app_add_to_home_screen

Метод не проверяет добавлено ли мини-приложение на главный экран.

Поддержка

Минимальная версия Telegram API: 8.0+

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Возвращаемое значение

setupOrientation

Метод, который фиксирует ориентацию мини-приложения в текущем режиме (портретном или альбомном). После блокировки ориентация остается фиксированной, независимо от поворота устройства. Это полезно, есл

web_app_toggle_orientation_lock

Поддержка

Минимальная версия Telegram API: 8.0+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

setHeaderColor

Метод, который устанавливает цвет заголовка приложения в формате #RRGGBB. Вы также можете использовать ключевые слова `bg_color` и `secondary_bg_color`.

web_app_setup_closing_behavior

setEmojiStatus

Метод, который открывает диалоговое окно, позволяющее пользователю установить указанный пользовательский эмодзи в качестве своего статуса.

web_app_set_emoji_status

requestEmojiStatus

Метод, который показывает собственное всплывающее окно, запрашивающее разрешение для бота на управление статусом эмодзи пользователя.

web_app_request_emoji_status_access

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'
}

shareToStory

Метод, который открывает собственный редактор историй с медиа, указанными в параметре media_url как HTTPS URL.

web_app_share_to_story

Поддержка

Минимальная версия Telegram API: 7.8+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

error_ids

ID
Описание

setBackgroundColor

Метод, который устанавливает цвет фона приложения в формате #RRGGBB. Вы также можете использовать ключевые слова `bg_color` и `secondary_bg_color`.

web_app_set_background_color

Поддержка

Минимальная версия Telegram API: 6.1+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание
Примеры

Возвращаемое значение

Системные цвета

Значение
Описание

downloadFile

Метод, который отображает собственное всплывающее окно, предлагающее пользователю загрузить файл.

web_app_request_file_download

Поддержка

Минимальная версия Telegram API: 8.0+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

setupClosingBehavior

Метод, который устанавливает цвет заголовка приложения в формате #RRGGBB. Вы также можете использовать ключевые слова `bg_color` и `secondary_bg_color`.

web_app_setup_closing_behavior

Поддержка

Минимальная версия Telegram API: 6.2+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

setupSwipeBehavior

Метод, который включает и выключает вертикальные свайпы для закрытия или сворачивания Mini App.

web_app_setup_swipe_behavior

Поддержка

Минимальная версия Telegram API: 7.7+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

checkHomeScreen

Метод, который проверяет, поддерживается ли добавление на главный экран и добавлено ли уже мини-приложение.

web_app_check_home_screen

Поддержка

Минимальная версия Telegram API: 8.0+

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Возвращаемое значение

Data

status
Описание

setupFullScreen

Метод, который запрашивает открытие мини-приложения в полноэкранном режиме.

web_app_request_fullscreen

Хотя заголовок прозрачен в полноэкранном режиме, рекомендуется, чтобы мини-приложение задавало цвет заголовка с помощью метода setHeaderColor. Этот цвет помогает определить контрастный цвет для строки состояния и других элементов управления пользовательского интерфейса.

Поддержка

Минимальная версия 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.

Поле

invokeCustomMethod

Метод, для вызова кастомных событий.

web_app_invoke_custom_method

shareMessage

Метод, который открывает диалоговое окно, позволяющее пользователю поделиться сообщением, предоставленным ботом. Идентификатор сообщения, переданный этому методу, должен принадлежать `PreparedInlineMe

web_app_send_prepared_message

Тип
Описание

reload_supported

boolean

Необязательно. True, если текущее мини-приложение поддерживает собственную перезагрузку.


iframe_will_reload

Уведомляет родительский iframe о том, что текущий iframe будет перезагружен.


web_app_add_to_home_screen

Минимальная версия Telegram API: 8.0+

Предлагает пользователю добавить Mini App на домашний экран. Обратите внимание, что если устройство не может определить статус установки, событие может не быть получено, даже если значок был добавлен.


web_app_biometry_get_info

Минимальная версия Telegram API: 7.2+

Запрашивает текущие настройки биометрии.


web_app_biometry_open_settings

Минимальная версия Telegram API: 7.2+

Этот метод может быть вызван только в ответ на взаимодействие пользователя с интерфейсом мини-приложения (например, щелчок внутри мини-приложения или на главной кнопке).

Открывает настройки биометрического доступа для ботов. Полезно, когда нужно запросить биометрический доступ у пользователей, которые его еще не предоставили.


web_app_biometry_request_access

Минимальная версия Telegram API: 7.2+

Запрашивает разрешение на использование биометрии.

Поле
Тип
Описание

reason

string

Необязательно. Текст, который будет отображаться пользователю во всплывающем окне, описывающий, почему боту необходим доступ к биометрии, 0-128 символов.


web_app_biometry_request_auth

Минимальная версия Telegram API: 7.2+

Аутентифицирует пользователя с использованием биометрии.

Поле
Тип
Описание

reason

string

Необязательно. Текст, который будет отображаться пользователю во всплывающем окне, описывающий, почему вы просите его пройти аутентификацию и какие действия вы предпримете на основе этой аутентификации, 0–128 символов.


web_app_biometry_update_token

Минимальная версия Telegram API: 7.2+

Обновляет биометрический токен в безопасном хранилище на устройстве. Чтобы удалить токен, передайте пустую строку.

Поле
Тип
Описание

token

string

Токен для хранения. Максимальная длина 1024 символа.


web_app_check_home_screen

Минимальная версия Telegram API: 8.0+

Отправляет запрос в собственное приложение Telegram, чтобы проверить, добавлено ли текущее мини-приложение на главный экран устройства.


web_app_check_location

Минимальная версия Telegram API: 8.0+

Запрашивает состояние доступности функциональности, связанной с местоположением.


web_app_close

Закрывает мини-приложение.


web_app_close_scan_qr_popup

Минимальная версия Telegram API: 6.4+

Закрывает QR-сканер. Приложение Telegram создает событие scan_qr_popup_closed.


web_app_data_send

Отправляет данные боту. При вызове этого метода боту отправляется служебное сообщение, содержащее данные длиной до 4096 байт. Затем Mini App будет закрыт.

Чтобы получить больше информации, взгляните на поле web_app_data в классе Message.

Поле
Тип
Описание

data

string

Данные для отправки боту. Не должны иметь размер более 4096 байт.


web_app_exit_fullscreen

Минимальная версия Telegram API: 8.0+

Запрашивает выход из полноэкранного режима для мини-приложения.


web_app_expand

Разворачивает мини-приложение.


web_app_invoke_custom_method

Минимальная версия Telegram API: 6.9+

Поле
Тип
Описание

req_id

string

Уникальный идентификатор текущего вызова.

method

string

Имя метода.

params

unknown

Параметры согласно method.


web_app_open_invoice

Минимальная версия Telegram API: 6.1+

Открывает счет-фактуру по указанному слагу. Подробнее о счетах-фактурах в этой документации.

Поле
Тип
Описание

slug

string

Уникальный идентификатор счета-фактуры.


web_app_open_link

Открывает ссылку в браузере по умолчанию. Мини-приложение не будет закрыто.

Поле
Тип
Описание

url

string

URL-адрес, который должен быть открыт приложением Telegram. Должен быть полным путем с протоколом https.

try_instant_view

boolean

[v6.4] Необязательно. Ссылка будет открыта в режиме мгновенного просмотра, если это возможно.

try_browser

boolean

[v7.6] Необязательно. Ссылка будет открыта в браузере, если это возможно.


web_app_open_location_settings

Минимальная версия Telegram API: 8.0+

Обратите внимание, что этот метод может быть вызван только в ответ на взаимодействие пользователя с интерфейсом мини-приложения (например, щелчок внутри мини-приложения или на главной кнопке).

Открывает настройки доступа к местоположению для ботов. Полезно, когда вам нужно запросить доступ к местоположению у пользователей, которые еще не предоставили его.


web_app_open_popup

Минимальная версия Telegram API: 6.2+

Открывает новое всплывающее окно. Когда пользователь закрывает всплывающее окно, Telegram создает событие popup_closed.

Поле
Тип
Описание

title

string

Текст, который будет отображаться в заголовке всплывающего окна, 0-64 символа.

message

string

Сообщение, которое будет отображаться в тексте всплывающего окна, от 1 до 256 символов.

buttons

PopupButton[]

Список кнопок, которые будут отображаться во всплывающем окне, 1-3 кнопки

PopupButton

Поле
Тип
Описание

id

string

Идентификатор кнопки, 0-64 символа.

type

PopupButtonType

Тип кнопки. "default", "destructive", "ok", "close", "cancel"

text

PopupButton[]

Текст, который будет отображаться на кнопке, 0-64 символа. Игнорируется, если type в ok, close или cancel.

PopupButtonType

Тип
Описание

default

Кнопка со стилем по умолчанию.

destructive

Кнопка со стилем, указывающим на деструктивное действие (например, «Удалить» и т. д.)

ok

Кнопка с локализованным текстом «ОК»

close

Кнопка с локализованным текстом «Закрыть»

cancel

Кнопка с локализованным текстом «Отмена»


web_app_open_scan_qr_popup

Минимальная версия Telegram API: 6.4+

Открывает 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'
}

openTgLink

Метод, который открывает ссылку Telegram внутри приложения Telegram. Мини-приложение не будет закрыто после вызова этого метода.

web_app_open_tg_link

Поддержка

Минимальная версия Telegram API: 7.0+

  • Telegram Web

  • Telegram Desktop

  • Telegram Mobile (iOS/Android)

Использование

Параметры

Параметр
Тип
Описание

Возвращаемое значение

path_full

string

Должно быть значение, взятое из ссылки в следующем формате: https://t.me/{path_full}

force_request

boolean

Необязательно.

bridgeOpenTgLink({ path_full: "apiteamru" })
{
  status: boolean | 'not_supported'
}