Как поделиться из мини-приложения
Что это
Мини-приложение может подготовить что-то и открыть родное окно Telegram, чтобы человек этим поделился: сообщение в любой чат, картинку или видео в свою историю, иконку на главном экране телефона. Решает каждый раз сам человек.
Как сделать
- Сообщение: бот готовит его для этого человека методом… Сообщение: бот готовит его для этого человека методом `savePreparedInlineMessage` и указывает, куда его можно отправить: в чаты с людьми, с ботами, в группы, в каналы. Приложение вызывает `shareMessage` с его id, и Telegram открывает окно отправки.
- Ссылка: приложение открывает `t.me/share?url=<ссылка>&text=<текст>` через… Ссылка: приложение открывает `t.me/share?url=<ссылка>&text=<текст>` через `openTelegramLink`. Человек выбирает чат, а ссылка и текст появляются в поле ввода.
- История: приложение вызывает `shareToStory` с HTTPS-адресом картинки или видео… История: приложение вызывает `shareToStory` с HTTPS-адресом картинки или видео и подписью, и открывается редактор историй Telegram.
- Главный экран: `checkHomeScreenStatus` подскажет, можно ли добавить иконку, а `addToHomeScreen` предложит это сделать.
Осторожно
- Подпись к истории — до 200 символов, у подписчиков Telegram Premium до 2048. Добавить в историю ссылку могут только они, а её название — до 48 символов.
- Подготовленное сообщение работает только для того, для кого сделано, и у него есть срок годности: готовь его прямо перед отправкой.
- Статус иконки бывает `unsupported`, `unknown`, `added` или `missed`, а событие о добавлении может не прийти, даже если иконка уже на экране.
С Gem
Каждый в проекте получает свою ссылку-приглашение `gem.bot/<имя>?i=<код>` и окно отправки Telegram с готовой карточкой; засчитывается первое приглашение. Любой может выложить проект в свою историю из его мини-приложения кнопкой «В свою историю» (ссылка в истории будет только у пользователей Premium). Иконки на главный экран Gem не добавляет.
Источники
- https://core.telegram.org/bots/webapps#initializing-mini-apps
- https://core.telegram.org/bots/api#savepreparedinlinemessage
- https://core.telegram.org/api/links#share-links