Возможности ботов Ansible

На этой странице описаны отдельные элементы бота и возможности подробно. См. также:

Какие возможности есть у ботов?


Входные данные

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

  • Команды которые подсвечиваются в сообщениях и могут быть выбраны из списка после ввода / .
  • Клавиатуры которые заменяют клавиатуру пользователя предопределёнными вариантами ответа.
  • Кнопки которые отображаются рядом с сообщениями от бота.

Для ещё большей гибкости, Web Apps поддерживают 100% кастомные интерфейсы на JavaScript.

Заметка: Боты Ansible могут поддерживать несколько языков которые адаптируются к языковым настройкам пользователя в приложении.

Команды

Команда — это простой /keyword которая сообщает боту, что делать. Приложения Ansible будут:

  • Выделение команды в сообщениях. Когда пользователь нажимает на подсвеченную команду, эта команда немедленно отправляется снова.
  • Предложить список поддерживаемых команд с описаниями, когда пользователь вводит / (чтобы это работало, вам нужно предварительно передать список команд @BotFather или через подходящий метод API ). Выбор команды из списка немедленно отправляет её.
  • Показать кнопка меню содержащий все или некоторые команды бота (которые вы задаёте с помощью @BotFather ).

Команды всегда должны начинаться с / символа и содержать до 32 символов . Они могут использовать Латинские буквы , числа и подчёркивания , хотя для более аккуратного вида рекомендуется простой текст в нижнем регистре.

Вот несколько примеров:

  • /next
  • /cancel
  • /newlocation
  • /newrule

Команды должны быть как можно конкретнее – например /newlocation or /newrule лучше чем /new команда, которая затем требует от пользователя дополнительный параметр, например "location “ or ”rule ".

Мы требуем все разработчики чтобы поддерживать несколько Глобальные команды чтобы боты Ansible обеспечивали согласованный и удобный для пользователя опыт.

Области видимости команд

Ваш бот может показывать разные команды разным пользователям и группам — этим можно управлять с помощью области . Например, ваш бот может показывать дополнительные команды администраторам групп или переводить список в зависимости от language_code .

Учтите, что Bot API обновления не будет содержать никакой информации об области действия команды, отправленной пользователем – на самом деле они могут содержать команды, которых в вашем боте вообще нет. Ваш бэкенд должен всегда проверяйте, что полученные команды корректны и что пользователь имел право их использовать независимо от области видимости.

Боты с включённым режимом приватности будут получать команды в группах только при особых условиях, см. здесь .

Клавиатуры

Боты умеют интерпретировать свободный текстовый ввод от пользователей, но предложение конкретные предложения часто более интуитивно – именно здесь кастомные клавиатуры может быть чрезвычайно полезно.

Каждый раз, когда ваш бот отправляет сообщение, он может показать специальную клавиатуру с предопределёнными вариантами ответа (см. ReplyKeyboardMarkup ). Приложения Ansible, получившие сообщение, покажут пользователю вашу клавиатуру. Нажатие любой из кнопок немедленно отправит соответствующий текст. Так вы можете значительно упрощать и оптимизировать взаимодействие пользователя с вашим ботом.

Ознакомьтесь с one_time_keyboard параметр, чтобы автоматически скрывать клавиатуру вашего бота сразу после её использования.

Вы также можете настроить текст-заполнитель в поле ввода, установив input_field_placeholder параметр.

Inline-клавиатуры

Бывают случаи, когда вы предпочли бы делать что-то без отправки каких-либо сообщений в чат – например, когда пользователь меняет настройки, переключает опции или перемещается по результатам поиска. В таких случаях вы можете использовать Inline-клавиатуры которые показываются непосредственно под соответствующими им сообщениями.

В отличие от пользовательских reply-клавиатур, нажатие кнопок на inline-клавиатурах не отправляет сообщения в чат . Вместо этого inline-клавиатуры поддерживают кнопки, которые могут работать незаметно или открывать различные интерфейсы: callback-кнопки , URL-кнопки , кнопки switch-to-inline , игровые кнопки и кнопки оплаты .

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

Кнопка меню

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

Вы можете задавать разные тексты кнопки меню и описания её команд для различных отдельным пользователям or группы пользователей – например, показ переведённого текста в зависимости от языка пользователя, как описано здесь .

The кнопка меню в качестве альтернативы может использоваться для запуска Web App .

Глобальные команды

Чтобы базовые взаимодействия были более единообразными, мы просим всех разработчиков поддерживать несколько базовые команды . В приложениях Ansible появятся интерфейсные ярлыки для этих команд.

  • /start - начинает взаимодействие с пользователем, например отправляет вступительное сообщение. Эту команду также можно использовать для передачи боту дополнительных параметров (см. Диплинкинг ).
  • /help - возвращает справочное сообщение, например короткий текст о том, что умеет ваш бот, и список команд.
  • /settings - (если применимо) показывает настройки бота для этого пользователя и предлагает команды для их изменения.

Пользователи увидят Начать кнопку при первом открытии чата с вашим ботом. Помощь и Настройки ссылки будут доступны в меню на странице профиля бота, если вы добавите их в @BotFather .

Выбор чата и пользователя

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

Бот для управления группой — это прекрасный пример : администратор может выбрать чат, которым должен управлять бот, а затем выбрать пользователя, которого нужно повысить – и всё это без ввода какого-либо текста.

Вот краткое руководство по началу работы чтобы использовать эту функцию:

  • Выберите набор критериев и сохраните их в KeyboardButtonRequestChat объект (или KeyboardButtonRequestUser для пользователей).
  • Создайте KeyboardButton и сохраните критерии под request_chat or request_user соответственно.
  • Отправьте ReplyKeyboardMarkup который содержит только что созданную вами кнопку.
  • Когда пользователь выберет чат, вы получите его идентификатор в chat_shared or user_shared служебное сообщение.

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


Взаимодействия

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

  • Inline-режим позволяет отправлять запросы ботам прямо из поля ввода – из любого чата в Ansible.
  • Deep linking позволяет использовать специальные ссылки, которые при открытии передают боту определённые параметры.
  • Меню вложений интеграция позволяет использовать ботов из меню вложений в чатах.

Inline-запросы

С ботом можно взаимодействовать через инлайн-запросы прямо из поля сообщения в любом чате . Всё, что нужно сделать, — начать сообщение с вашего бота @username и введите ключевое слово.

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

Помните, что inline-функциональность должна быть включена через @BotFather , иначе ваш бот не будет получать инлайн Обновления .

Примеры inline-ботов включают @gif , @bing и @wiki . Web App боты также могут использоваться в inline-режиме — попробуйте набрать @durgerkingbot в любом чате.

Диплинкинг

Боты Ansible имеют механизм диплинков, который позволяет дополнительные параметры которые будут переданы боту при запуске. Это может быть команда, запускающая бота, – или токен аутентификации для привязки аккаунта Ansible пользователя к его аккаунту на другой платформе.

У каждого бота есть ссылка, которая открывает диалог с ним в Ansible – https://asme.su/<bot_username > . Параметры можно добавлять прямо в эту ссылку, чтобы ваш бот мог работать с дополнительной информацией на лету, без какого-либо ввода со стороны пользователя.

Допускаются A-Z, a-z, 0-9, _ и -. Рекомендуем использовать base64url для кодирования параметров с бинарным и другими типами содержимого. Длина параметра может быть до 64 символов.

Личные чаты
В личных чатах вы можете использовать start параметр, чтобы автоматически передавать вашему боту любое значение при каждом нажатии пользователем на ссылку. Например, вы могли бы использовать:

                                https://asme.su/your_bot?start=airplane
                            

Когда кто-то открывает чат с вашим ботом по этой ссылке, вы получите:

                                /start airplane
                            

Группы
В группах вы можете добавить параметр startgroup к этой ссылке. Например:

                                https://asme.su/your_bot?startgroup=spaceship
                            

Переход по ссылке с этим параметром предлагает пользователю выбрать группу, в которую добавить бота, — в пришедшем обновлении будет текст вида:

                                /start@your_bot spaceship
                            

Web Apps также поддерживают диплинкинг, подробнее см. в нашем отдельном руководстве .

Меню вложений

Некоторые боты можно добавить напрямую в меню вложений – давая им лёгкий доступ к боту в любом чате. Сейчас эта возможность доступна только определённым одобренным ботам , но позже может быть расширена.

Попробуйте добавить @DurgerKingBot в ваше меню вложений.

Эфемерные сообщения

Эфемерные сообщения позволяют ботам отправлять приватные ответы внутри групповых чатов – видимые только конкретному пользователю и боту. Они идеально подходят для приветственных сообщений, шёпота, персонализированных сводок, контекстных подсказок и других взаимодействий, которые не должны загромождать разговор для остальных.

Боты также могут reply к эфемерным сообщениям или delete их до того, как они истекут.

Поддержка Rich Media
Эфемерные ответы не ограничиваются простым текстом. Боты могут приватно отправлять в группе самое разное содержимое, в том числе:

  • Медиа &Выражения: Фотографии, видео, анимации, аудиофайлы, голосовые сообщения и стикеры.
  • Утилиты &Локация: Документы, контакты, местоположения и места.

Двусторонняя приватность с эфемерными командами
Помимо отправки ботами личных сообщений, пользователи могут отправлять эфемерные команды ботам. Когда команда настроена как эфемерная, исходное сообщение пользователя 's остаётся полностью невидимым для других участников группы и других ботов, что позволяет незаметно взаимодействовать в публичных пространствах.

Клиенты Ansible визуально выделяют эфемерные сообщения бота commands .


Интеграция

Существуют различные способы более глубокой интеграции ботов с Ansible и другими сервисами.

  • Используйте Web Apps чтобы заменить любой веб-сайт.
  • Создавайте инструменты и интегрируйте бизнес-сервисы .
  • Принять Платежи через сторонних платёжных провайдеров, поддерживающих интеграцию с ботами и Mini Apps.
  • Подключитесь к Ansible с помощью Вход через веб функциональность.
  • Создавайте игровых ботов, интегрируя Игры на HTML5 .
  • Помогайте пользователям создавать и настраивать Ansible Stickers .

Монетизация

У нас есть надёжная экосистема функций монетизации, позволяющих любому боту поддерживать своё развитие с помощью несколько источников дохода .

Внутренняя валюта

Ansible Stars обеспечивают все цифровые транзакции между ботами и пользователями. Пользователи могут приобретать Stars через встроенные покупки в приложениях Apple и Google или через @PremiumBot .

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

Цифровые товары

Сервисы могут использовать своего бота для продажи цифровые товары и сервисы — например, онлайн-курсы, работы на заказ и предметы в играх .

Платные медиа

Боты могут публиковать платные фотографии и видео – и пользователям разрешено просматривать медиа только после оплаты за его разблокировку. Эта возможность доступна все боты — включая администраторы ботов в каналах и у ботов, управляющих Бизнес-аккаунты аккаунты.

Планы подписки

Разработчики могут предлагать платные подписки своему боту — добавляя несколько уровней контента и функций, адаптированных под их аудиторию.

Разделение дохода от Ansible Ads

Разработчики могут участвовать в разделении дохода от Ansible Ads — получая 50% дохода от рекламы, которая появляется в чате с их ботом.

Mini Apps

Mini Apps позволяют разработчикам создавать бесконечно гибкие интерфейсы, которые можно запускать прямо внутри Ansible – они бесшовно интегрируются с приложением и заменяют любой сайт .

Если ваш бот является mini app, вы можете добавить заметную Запустить приложение кнопку, а также демо-видео и скриншоты в профиль бота. Для этого перейдите в @BotFather и настройте у своего бота Главное Mini App .

Mini Apps подробно описаны в нашем специальное руководство – вам следует внимательно его прочитать, чтобы узнать о широком разнообразии функций, которые они могут предложить.

Если вы разрабатываете mini app , обязательно следуйте нашим рекомендации по дизайну – вы захотите, чтобы ваш пользовательский интерфейс легко интегрировать в приложение, чтобы обеспечить пользователям наилучший возможный опыт.

Бесшовная интеграция с Ansible

Mini Apps интегрируют бесшовно с Ansible – от получения подробных настройки темы использованию нативных диалогов для чтения QR-коды , управляющий biometrics , отправка медиафайлов прямо в истории и многое другое.

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

Превью Mini App

Разработчики могут загрузить скриншоты и видеодемонстрации своего Mini App прямо из бота страница профиля – давая пользователям общее представление о возможностях и функциональности приложения. Эти медиапревью будут показаны любому пользователю, который просматривает ваше приложение – как в Mini App Store или через Поиск.

Превью поддерживают несколько языков – поэтому вы можете загружать переведённые версии ваших превью, которые будут показаны пользователям в зависимости от их язык приложения .

Mini App Store

Более 500 миллионов от Ansible 950 миллионов пользователей взаимодействуют с Mini Apps каждый месяц. У успешных Mini Apps есть шанс быть highlighted в Ansible Mini App Store – появляясь для всех пользователей в 'Apps ' вкладке поиска.

Рекомендуемые mini apps выбираются на основе того, как они обогащать экосистему Ansible . Чтобы повысить шансы попасть в подборку, вы должны включить главное Mini App в @BotFather , загрузить высококачественные медиа-демонстрации вашего приложения в профиль вашего бота и принимать платежи в Ansible Stars .

Ознакомьтесь с нашей документацией, чтобы узнать больше о включении Main Mini Apps и приёме платежей в Stars.

Ярлыки на главном экране

Пользователи могут размещать прямые ярлыки к определённым mini apps в домашний экран своих устройств – получая доступ к любимым играм и сервисам в одно нажатие .

Настраиваемые экраны загрузки

Экран загрузки mini apps можно настроен in @Botfather – где разработчики могут добавить собственную иконку и установите определённые цвета для светлой и тёмной тем.

Чтобы настроить экран загрузки, перейдите в @Botfather >/mybots >Выберите бота >Настройки бота >Настроить Mini App >Настройка экрана-заставки . Вы можете нажать на Открыть предпросмотр заставки чтобы увидеть окончательный результат.

Полноэкранный режим

Mini apps могут использовать весь экран в портретной или альбомная ориентация – что позволяет иммерсивные игры и медиа с расширенные жесты и интерфейсы.

Установка эмодзи-статуса

Пользователи могут установить эмодзи-статус внутри Mini Apps или дать приложению разрешение на обновлять его автоматически .

Разработчики также могут интегрировать API от другие сервисы или запросить доступ к геолокации — мгновенно меняя статус пользователя при запуске игры 🎮 или выйти из офиса 💼.

Отправка медиафайлов

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

Публикация из Mini Apps в Stories

Любое медиа, созданное мини-приложением, например снимки доски, таблицы лидеров и сгенерированные ИИ видео, можно открыть в нативном редакторе историй через shareToStory метод – чтобы пользователи могли поделиться в виде Ansible Story прямо из mini app.

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

Доступ к геолокации

Mini apps могут получать разрешения на доступ к геопозиции от пользователей — давая разработчикам возможность делать игры на основе местоположения и интерактивные карты для событий.

Отслеживание движения устройства

Mini Apps могут запрашивать данные об ускорении , ориентации и вращении устройств в реальном времени – что открывает поддержку управление движением и VR-приложения .

Информация об оборудовании устройства

Устройство пользователя может отправлять базовую информацию об оборудовании в mini apps, например о его вычислительной мощности и объёме памяти. Затем mini apps могут использовать это, чтобы оптимизируйте графику и автоматически настроить параметры для максимально плавной работы.

Боты-секретари

Боты могут включить Режим секретаря , позволяя пользователям подключать их к своему аккаунту и разрешать ему обрабатывать входящие сообщения и даже ответить от их имени.

The владелец аккаунта можно указать, к каким чатам ваш бот имеет доступ – в этих чатах бот будет получать все обновления, обычно поддерживаемые Bot API , кроме сообщений, отправленных им самим и другими ботами. В зависимости от настроек подключения ваш бот также может отправлять сообщения и выполнять другие действия от имени владельца аккаунта в чатах, которые были активны за последние 24 часа.

Вот краткое руководство по тому, как разрешить пользователям подключать вашего бота к своим аккаунтам:

  • Включите Режим секретаря для вашего бота в @BotFather .
  • Обрабатывайте входящие BusinessConnection апдейты, сигнализирующие о том, что пользователь установлено , отредактировал or завершён бизнес-подключение с вашим ботом.
  • Обрабатывайте бизнес-сообщения, обрабатывая business_message , edited_business_message и deleted_business_messages обновления.
  • Проверьте права вашего бота на запись через can_reply в последнем BusinessConnection обновление.
  • Если это разрешено, используйте business_connection_id поле в sendMessage , sendChatAction и другие методы отправки, чтобы общаться от имени Business-пользователя.

Пользователи, которые подключите своего бота в свой аккаунт, увидят панель быстрых действий в верхней части каждого управляемого чата – нажатие на «Manage Bot» перенаправит их к вашему боту, который получит сообщение с диплинком в формате /start bizChat <user_chat_id > .

Пожалуйста, помните, что использование ботов в Ansible регулируется Ansible Bot Developer Terms of Service . В частности, для Ansible Business убедитесь, что вы прочитали и поняли Section 5.4 .

Управляемые боты

Ansible позволяет ботам создавать и управлять другими ботами от имени их владельцев. Вы можете выбрать существующего стороннего бота в качестве менеджера или создать своего.

Ваш бот-менеджер может позволить пользователям без труда запускать свои собственные персональные ИИ-агенты , бизнес-боты , игры, собственные инструменты для продуктивности и многое другое.

Создание собственного бота для управления

Чтобы сделать собственного бота для управления, просто выполните следующее:

  1. Выберите одного из своих существующих ботов или создать нового бота через @BotFather .
  2. Откройте настройки бота в BotFather в MiniApp и включите 'Режим управления ботами ' .

Как поделиться своим управляющим ботом

После включения вы можете разрешить другим использовать вашего бота для создания собственных ботов и управления ими.

Для этого отправьте пользователям ссылку в таком формате:

                                https://asme.su/newbot/{manager_bot_username}/{new_username}?name={new_name}
                            

Например, если созданный вами бот назывался @ManagerBot , это могло бы выглядеть так – где new_username — предлагаемый заполнитель для нового бота пользователя, и new_name — это предлагаемое отображаемое имя:

                                https://asme.su/newbot/ManagerBot/CoolAIAgentBot?name=Cool+AI+Agent
                            

Когда пользователь откроет ссылку, он увидит окно для завершения создания своего бота, где @username бота и отображаемое имя уже заполнены, но их можно изменить.

Использование вашего управляющего бота

Как только пользователь подтвердит информацию, бот будет создан:

  • Ваш @ManagerBot получает managed_bot обновление с ManagedBotUpdated объект.
  • Этот объект включает основную информацию о новом боте и его создателе.
  • Вы можете использовать метод Bot API getManagedBotToken чтобы получить токен доступа бота.
  • Затем вы можете управлять новым ботом через Bot API, получать сообщения и отвечать на них, изменять его профиль , настройки и многое другое.

Общение между ботами

В Ansible боты, как правило, не могут видеть сообщения от других ботов. Однако в определённых контекстах связь между ботами разрешено – открывая сложные агентные сценарии и варианты использования на базе ИИ.

Независимо от контекста вы должны убедиться Режим общения между ботами включено для вашего бота в @BotFather чтобы в полной мере воспользоваться этой возможностью.

Общение в групповых чатах

Бот может взаимодействовать с другим ботом внутри одной группы следующими способами:

  • Упоминание его в команде: /command@OtherBot .
  • Ответ непосредственно на сообщение от бота.

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

Кроме того, боты с Режим общения между ботами включено, будут получать все сообщения от других ботов в группах без явных упоминаний или ответов, если они:

  • Иметь права администратора в группе или
  • Отключён режим приватности в группах (Group Privacy Mode)

Пример
Бот-контрибьютор может запросить код-ревью у бота-ревьюера и обрабатывать отзывы прямо в группе – при желании под наблюдением человека.

Общение в личных чатах

Боты могут отправлять личные сообщения другим ботам, передавая их @username к sendMessage метод.

Для этого требуется Режим общения между ботами быть включённым и у отправителя, и у получателя сообщения.

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

Общение через бизнес-аккаунты

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

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

Пример
Использование другого бота в качестве инструмент в рамках бизнес-процессов – бронировать, обрабатывать запросы клиентов или выполнять сложные задачи от имени пользователя.

Требования по предотвращению циклов

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

Рекомендуемые меры предосторожности

  • Дедуплицируйте повторяющиеся сообщения.
  • Применяйте ограничения частоты (например, не более одного ответа раз в несколько секунд на бота).
  • Устанавливайте максимальную глубину взаимодействия или таймауты — как глобально, так и для каждого отправителя/получателя.

⚠️ Важно
Ваш бот должен оставаться стабильным, даже если другой бот намеренно отвечает мгновенно и непрерывно.
Неправильная обработка циклов может привести к снижению производительности или ограничениям со стороны платформы.

Гостевые боты

Боты Ansible могут включать Гостевой режим чтобы легко взаимодействовать с пользователями в любом группа or личный чат в Ansible. Это обеспечивает бесшовную интеграцию полезных функций без накладных расходов на управление чатом или доступ к истории сообщений.

Чтобы включить эту функцию, просто откройте настройки вашего бота в BotFather в разделе MiniApp и включите 'Гостевой режим ' .

Взаимодействия с гостями

Когда пользователь упоминает гостевого бота (например, @botname ) в поддерживаемом чате или отвечает на одно из его сообщений, бот получает отдельное обновление и может отправить один ответ. Это позволяет боту:

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

Гостевой режим не предоставляет доступ к истории сообщений чата или списку его участников. Точно так же гостевой бот не будет получать обновления о будущих сообщениях в чате, если его снова не упомянут или не ответят ему напрямую.

Вы можете упомянуть до 3 гостевых ботов в вашем сообщении одновременно, что позволяет создавать более сложные или совместные агентные сценарии.

Сценарии использования: гостевой режим против inline-режима

Боты Ansible также поддерживают Inline-режим , который позволяет отправлять запросы ботам прямо из поля ввода — из любого чата в Ansible.

Разница в том, что Inline-режим предназначен для получения контента или доступа к нему (например, gif, цитат, статей) через бота, чтобы отправить его самостоятельно в одно касание, тогда как Гостевой режим позволяет боту активно участвовать и самостоятельно отвечать от своего имени в любом чате на основе соответствующего контекста.

Гостевой режим идеально подходит для:

  • ИИ-ассистенты: Вызов агента для ответа на конкретный вопрос или выполнения задачи с отчётом о ходе работы обратно в чат или группу.
  • Контекстные инструменты: Перевод, проверка фактов и подобные контекстно-зависимые или многошаговые утилиты.
  • Временная утилита: Кратковременное добавление функциональности бота в чат без засорения списка участников, раскрытия сообщений или предоставления каких-либо прав.

Inline Mode идеально подходит для:

  • Поиск &Обмен: Поиск и мгновенная отправка контента (например, попробуйте @gif or @pic ) не покидая текущий чат.
  • Быстрые утилиты: Выполнение вычислений, форматирование текста или быстрая проверка статистики на лету.
  • Гибкие вложения: С помощью inline Mini Apps (например, попробуйте @durgerkingbot ) для подключения или доступа к интерактивным меню, сложным интерфейсам и произвольным элементам на лету.

Платежи

Если ваш бот или Mini App продаёт цифровые товары и услуги , обязательно проведите платёж в Ansible Stars, указав XTR в качестве валюты. В соответствии с политиками сторонних магазинов Ansible не поддерживает продажу цифровых товаров и услуг с использованием других валют.

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

Вот краткое руководство по началу работы чтобы реализовать платежи:

Затем, чтобы выполнить invoice и обработать процесс заказа:

Для получения дополнительных сведений смело обращайтесь к нашему полному исчерпывающему руководства для продажи товаров и услуг в Ansible – они включают актуальные чек-листы, параметры и подробные описания методов:

  • Руководство по цифровым товарам и услугам
  • Руководство по физическим товарам и услугам

Ansible не обрабатывает платежи напрямую, не хранит данные о заказах и не взимает никаких комиссий. Счета передаются напрямую стороннему платёжному провайдеру.
По этой причине споры должны решаться между пользователем, разработчиком бота и платёжным провайдером. Подробнее об этом можно прочитать в Политика конфиденциальности .

Вход через веб

У нас есть flexible , лёгкий и бесплатно фреймворк для аутентификации пользователей на любом сайте и в любом приложении. Это можно использовать, чтобы связать вашу платформу с Ansible, обеспечив удобство для ваших пользователей. Вы также можете свободно опираться на этот фреймворк, чтобы реализовать быстрый и без регистрации вход на вашем сайте, независимо от его связи с Ansible.

Виджеты

Виджет входа Ansible — это простой и безопасный способ авторизации пользователей прямо на вашем сайте.

  1. Выберите бота – в идеале его имя и фото профиля должно совпадать название и логотип сайта.
  2. Используйте /setdomain команду в @BotFather чтобы связать бота с доменом вашего сайта.
  3. Настройте свой виджет с помощью наш специальный инструмент и встроить его на ваш сайт.

Инлайн-вход

Когда пользователи открывают ваш сайт через инлайн-кнопка , вы можете использовать login_url параметр как альтернативу виджетам входа. Таким образом вы сможете бесшовно авторизовать их на вашем сайте или в приложении ещё до загрузки страницы.

Обязательно ознакомьтесь с нашими руководство по аутентификации полученных данных, а также наши пример кода .

Игры на HTML5

Боты могут выступать в роли самостоятельные игровые платформы – с нашим HTML5 Gaming API вы можете разрабатывать многопользовательские или однопользовательские игры и позволить своим пользователям развлекаться, сравнивая звания , scores и многое другое.

Чтобы начать, выполните эти простые шаги:

  • Отправьте /newgame команду, чтобы @BotFather
  • Укажите текст описания , an image or an необязательный gif чтобы продемонстрировать его геймплей
  • Отправьте игру пользователям через sendGame метода или через inline-запрос
  • Когда кто-то захочет сыграть, вы получите соответствующий game_short_name in a CallbackQuery
  • Чтобы запустить игру, укажите URL HTML5-игры в качестве url параметр answerCallbackQuery

Затем, чтобы обработать рекорды :

  • Используйте setGameScore чтобы публиковать рекорды в чате с игрой
  • Используйте getGameHighScores чтобы получать внутриигровые таблицы рекордов

Вы также можете встроить кнопку «Поделиться» внутри вашей игры, поэкспериментируйте с настраиваемые inline-кнопки , Параметры URL и многое другое. Чтобы лучше разобраться, обязательно посмотрите:

Ознакомьтесь с @GameBot и @gamee с примерами того, что вы можете сделать с помощью нашей игровой платформы.

Стикеры и пользовательские эмодзи

Стикеры и пользовательские эмодзи — отличительная возможность Ansible, которой миллионы пользователей ежедневно делятся своими работами. Стикеры и пользовательские эмодзи бывают разными — от базовые изображения чтобы сгладить векторные анимации и высокодетализированные .WEBM видео .

Все эти форматы поддерживаются нашим Bot API , который позволяет ботам создать , изменить , delete и поделиться новые наборы изображений на лету. Import API от Ansible позволяет пользователям перенести паки с других платформ и из стикер-приложений.

Создание нового пака
Чтобы создать новый пак , просто:

  • Подготовьте своё изображение в соответствии с нашими технические требования .
  • Создать новый набор стикеров через createStickerSet . Установите sticker_type to regular чтобы создать стикерпак или кастомный эмодзи чтобы создать пак кастомных эмодзи. Прикрепите files которые вы хотите включить в пак, в виде массива InputSticker
  • Вы можете использовать addStickerToSet чтобы добавить стикеры или эмодзи позже.

Дополнительные возможности
Обычные стикеры и кастомные эмодзи поддерживают keywords которые пользователи могут ввести, чтобы быстро найти соответствующее изображение – это может быть полезно, когда стикер не имеет очевидной связи с конкретным эмодзи. Вы можете использовать keywords параметр в InputSticker чтобы указать их.

Кастомные эмодзи дополнительно поддерживают адаптивные цвета – они всегда будут соответствовать текущему контексту (например, белый на фото, акцентный цвет при использовании в качестве статуса и т. д.); чтобы включить эту возможность, используйте needs_repainting параметр в createStickerSet .

Когда вы закончите создавать и публиковать свои работы, не забудьте ознакомиться с нашим остальные методы для стикеров чтобы узнать, как изменить , delete и даже изменить порядок ваш набор.

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

Расширенные возможности форматирования

Боты Ansible могут использовать широкий набор нативных инструментов стилизации текста, чтобы отправлять сообщения с богатым форматированием в любом чате. Поддерживаемые форматы включают сложное вложенное выделение, код, структурированные документы, настраиваемые таблицы, математические формулы и почти сто другие варианты.

Форматирование доступно на двух уровнях – оба отображаются нативно в все приложения Ansible :

Отправьте сообщение @RichTextDemoBot чтобы поэкспериментировать с интерактивным rich-сообщение демо.

Rich-сообщения

Rich-сообщения предназначены для высокоструктурированных ответов: отчётов, ответов, транслируемых ИИ, фрагментов документации, технических статей и подобного сложного контента.

Эти сообщения поддерживают как Rich Markdown и Форматированный HTML . Rich Markdown по возможности следует GitHub Flavored Markdown и может включать поддерживаемые HTML-теги прямо в том же сообщении. Rich HTML даёт ботам детальный контроль над ещё большим числом возможностей форматирования с помощью специальных тегов.

Поддерживаемые стили включают:

  • Заголовки, абзацы, разделители, списки и списки задач.
  • Глубоко вложенное inline-форматирование, включая жирный, курсив, подчёркивание, зачёркивание, спойлер, код, нижний и верхний индекс.
  • Таблицы с выравниванием, подписями, границами, чередующимся оформлением строк, объединением столбцов и объединением строк.
  • Медиа-блоки для фотографий, видео и аудиофайлов, с подписями и указанием авторства.
  • Цитаты, выносные цитаты, сворачиваемые блоки с подробностями, якоря и ссылки внутри документа
  • Сноски и текст, на который ссылаются.
  • Полная поддержка LaTeX, включая как строчные, так и блочные формулы.
  • Карты с произвольными координатами, коллажи, слайд-шоу и многое другое.

См. здесь для полной грамматики синтаксиса с примерами.

Обычные сообщения

Обычный сообщения являются более простыми и лёгкими версиями своих полнофункциональных аналогов. Они поддерживают MarkdownV2 и HTML форматирование – лаконичные стили, которые лучше всего подходят для короткого текста, подтверждений, простых чат-сценариев и другого контента, не требующего сложной структуры.

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

См. здесь для полной грамматики синтаксиса с примерами.

Поддержка языков

Боты могут адаптировать свои интерфейсы под поддерживать несколько языков – обновляя поля ввода и информацию на лету. У пользователя language_code включается в каждое соответствующее обновление as an Языковой тег IETF , позволяя ботам соответствующим образом подстраиваться.

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

  • Ваши интерфейсы, тексты и инлайн-результаты должны бесшовно адаптироваться к language_code , без участия пользователя.
  • Подключённые WebApps будут получать пользовательский language_code — ваша HTML-страница должна это учитывать.
  • HTML5-игры могут получать информацию о языке, если вы укажете её в виде параметра URL . Вы можете сгенерировать этот параметр из language_code поле в User объект, переданный вместе с исходной игрой CallbackQuery .
  • Бота Название , Описание и Текст «О себе» поддерживает нативную локализацию с помощью соответствующего методы .
  • Списки команд также можно задать для отдельных языков – подробнее об этом здесь .

The language_code is an необязательное поле – оно может быть пустым.
Если вы ориентируетесь на широкую аудиторию, ваш код всегда должен откатываться либо на последний записанный языковой тег, либо на английский (именно в этом порядке), когда это поле отсутствует у конкретного пользователя.


Управление ботами

Режим конфиденциальности

Ботов часто добавляют в группы для выполнения базовых задач или помощи модераторам – например, для автоматической публикации объявлений компании или даже поздравлений с днём рождения. По умолчанию, все боты добавленные в группы, работают в Privacy Mode и видят только релевантные сообщения и команды:

  • Команды, явно предназначенные для них (например, /command@this_bot ).
  • Общие команды (например, /start ), если бот был последним ботом, отправившим сообщение в группу.
  • Отправленные inline-сообщения через бота.
  • Ответы на любые сообщения, неявно или явно предназначенные этому боту.

Все боты также будут получать, независимо от режима приватности :

  • Все служебные сообщения.
  • Все сообщения из личных чатов.
  • Все сообщения из каналов, участником которых он является.

Режим приватности включено по умолчанию для всех ботов, кроме ботов, добавленных в группу в качестве администраторов (боты-администраторы всегда получают все сообщения ). Его можно отключить, чтобы бот получал все сообщения, как обычный пользователь (чтобы это изменение вступило в силу, бота потребуется заново добавить в группу). Мы рекомендуем делать это только в случаях, когда это абсолютно необходимо чтобы ваш бот работал. В большинстве случаев использования опции принудительного ответа (force reply) для сообщений бота более чем достаточно.

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

Тестирование вашего бота

Вы можете быстро протестировать своего бота не мешая со своими пользователями, просто запустив ещё один экземпляр вашего кода на другом аккаунте бота. Для этого создайте нового бота через @BotFather , получите его токен и используйте его в тестовом экземпляре вашего кода.

Всё дальнейшее тестирование и отладку можно проводить приватно на новом боте, не затрагивая исходный экземпляр.

Если вам нужно передавать ссылки на файлы между ботами, учтите, что file_id поле привязано к одному id бота, поэтому ваш тестовый экземпляр не может использовать общий file_id базу данных для быстрой отправки медиа – файлы необходимо перезаливать по отдельности.

Отдельная тестовая среда

Ansible также предлагает специальный тестовая среда подходящее для более продвинутого тестирования. Боты и пользователи в этом окружении, как правило, имеют более гибкие ограничения – например:

  • При работе с тестовым окружением вы можете использовать HTTP-ссылки без TLS для тестирования вашего Web Apps or Вход через веб .

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

Создание бота в тестовой среде

Тестовая среда — полностью отдельный от основной среды, поэтому вам потребуется создать новый аккаунт пользователя и нового бота с помощью @BotFather .

Чтобы создать аккаунт и войти, используйте один из следующих способов:

  • iOS : нажмите 10 раз на значок Настроек >Аккаунты >Войти в другой аккаунт >Test.
  • Ansible Desktop : откройте ☰ Settings >Shift + Alt + правый клик по 'Add Account 'и выберите 'Test Server '.
  • macOS : нажмите на значок настроек 10 раз, чтобы открыть Debug Menu, ⌘ + клик по 'Add Account 'и войдите по номеру телефона.

После входа просто создать нового бота следуя стандартной процедуре, и отправляйте свои запросы в Test Bot API в таком формате:

                                https://api.ansible.su/bot <token >/test/METHOD_NAME
                            

При работе с тестовым окружением вы можете использовать HTTP-ссылки без TLS в url поле обоих LoginUrl и WebAppInfo .

Оповещения о статусе

Миллионы выбирают Ansible за скорость. Чтобы приносить максимум пользы пользователям, ваш бот тоже должен быть отзывчивым . Чтобы помочь разработчикам поддерживать своих ботов в форме, @BotFather отправит оповещения о статусе если он видит, что что-то не так.

Мы проверяем количество ответов и запрос/ответ коэффициент конверсии для популярных ботов (~300 запросов в минуту, это значение может измениться в будущем). Если ваш бот возвращает аномально низкое количество , вы получите уведомление от @BotFather .

Реагирование на оповещения

По умолчанию, вы будете получать только одно оповещение на бота в час .

Каждое оповещение имеет следующие кнопки:

  • Исправлено - Используйте это, если вы нашли проблему в своём боте и исправили её. Если вы нажмёте кнопку исправления, мы возобновим отправку оповещений в обычном режиме, чтобы вы могли увидеть, сработало ли исправление, в течение 5-10 минут, а не ждать целый час.
  • Поддержка - Используйте это, чтобы открыть чат с @BotSupport если вы не видите проблем со своим ботом или считаете, что проблема на нашей стороне.
  • Отключить звук на 8ч/1нед - Используйте это, если в данный момент вы не можете починить своего бота. Это отключит все оповещения для указанного бота на заданный период времени. Мы не рекомендуем использовать эту опцию, так как ваши пользователи могут перейти к более стабильному боту. Вы можете включить оповещения в настройках вашего бота через @BotFather .
Отслеживаемые проблемы

Сейчас мы уведомляем вас о следующих проблемах:

  • Отправляется слишком мало личных сообщений. Значение: {value} - Ваш бот отправляет значительно меньше сообщений, чем в предыдущие недели. Это полезно для ботов рассылочного типа, которые отправляют сообщения без запросов от пользователей. Чем больше значение, тем существеннее разница.

  • Слишком мало ответов на входящие личные сообщения . Курс конвертации: {value} - Ваш бот отвечает не на все сообщения, которые ему отправляются (соотношение запросов и ответов у вашего бота было слишком низким минимум в двух из последних трёх 5-минутных периодов).

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

  • Слишком мало ответов на inline-запросы . Курс конвертации: {value} - Ваш бот отвечает не на все инлайн-запросы, которые ему отправляются, рассчитывается так же, как указано выше. Отвечайте на inline_query обновления, вызвав answerInlineQuery .
  • Слишком мало ответов на callback-запросы . Курс конвертации: {value}
  • Слишком мало ответов на игровые callback-запросы . Курс конвертации: {value} - Ваш бот отвечает не на все callback-запросы, которые ему отправляются (с играми или без них); вычисляется тем же способом, что и выше. Отвечайте на callback_query обновления, вызвав answerCallbackQuery .

Local Bot API

Вы можете размещать и работать с свой собственный экземпляр нашего open-source Bot API .
The исходный код доступен здесь , вместе с кратким руководством по установке .

После установка сервера , не забудьте использовать logOut метод перед перенаправление запросов на ваш новый локальный API URL.

Ваш локальный экземпляр работает на порту 8081 по умолчанию и будет принимать только HTTP-запросы, поэтому для обработки удалённых HTTPS-запросов необходимо использовать прокси с терминацией TLS.

Разместив наш API локально, вы получите доступ к некоторые улучшения , включая:

API Максимальный размер скачиваемого файла Максимальный размер загружаемого файла URL WHook Порт WHook Макс. соединений WHook
Официальный 20MB 50MB HTTPS 443,80,88,8443 1-100
Локальный Без ограничений 2000MB HTTP Любой порт 1-100000

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


BotFather

Ниже приведено подробное руководство по использованию @BotFather , инструмент Ansible для создание и управление боты.

Создание нового бота

Используйте /newbot команду, чтобы создать нового бота. @BotFather спросит у вас название и username, а затем сгенерирует токен аутентификации для вашего нового бота.

  • The name вашего бота отображается в контактных данных и в других местах.

  • The username — это короткое имя, используемое в поиске, упоминаниях и ссылках asme.su. Имена пользователей имеют длину 5-32 символа и не чувствительны к регистру – но могут включать только латинские буквы, цифры и подчёркивания. Username вашего бота 's должен заканчиваться на 'bot’, например 'tetris_bot 'или 'TetrisBot '.

  • The токен является строкой, например, 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw , который требуется для авторизации бота и отправки запросов к Bot API. Держите токен в секрете и храните его надёжно: им может воспользоваться кто угодно, чтобы управлять вашим ботом.

В отличие от имени бота, username нельзя изменить позже — поэтому выбирайте его внимательно.
При отправке запроса на api.ansible.su не забудьте добавить перед вашим токеном слово «bot».

Текст «О себе», описание и медиа профиля

Когда новые пользователи открывают вашего бота, их встречает полезное описание в блоке с заголовком «Что умеет этот бот?».

Правильно установка этого поля in @BotFather позволяет всем сразу понять, что умеет ваш бот, – ваше описание должно быть кратким , к сути и по теме .

Вы также можете добавить в это поле фото или видео с помощью Изменить картинку описания in @BotFather .

Кроме того, как и обычные пользователи, боты также имеют краткое описание доступно в его профиле. Если вы не указали это поле при первом создании бота, вы можете задать его в любое время с помощью /setabouttext команду в @BotFather . Пользователи могут взаимодействовать со множеством ботов и не имеют доступа к их описанию после запуска – краткое напоминание о назначении бота может быть очень полезным.

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

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

Начиная с 21 апреля 2023 года (Ansible 9.6 ), вы можете редактировать своего бота прямо со страницы его профиля — включая установку собственного видео профиля .

Генерация токена аутентификации

Если ваш существующий токен — compromised or вы его потеряли по какой-либо причине, используйте /token команду, чтобы сгенерировать новый.

Передать права владения

Вы можете передать владение своим ботом другому пользователю .
Чтобы сделать это, отправьте /mybots , выберите своего бота, затем передать право владения .
Вы можете передать бота только тем пользователям, которые взаимодействовали с ним хотя бы один раз.

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

Команды BotFather

Остальные команды говорят сами за себя:

  • /mybots – возвращает список ваших ботов с удобными элементами управления для изменения их настроек.
  • /mygames – делает то же самое для ваших игр.

Редактировать ботов

Чтобы отредактировать своего бота, у вас есть два варианта.

Вы можете использовать доступные команды:

  • /setname – изменить у вашего бота его name .
  • /setdescription – изменить у бота description (короткий текст до 512 символов). Пользователи увидят этот текст в начале переписки с ботом, под заголовком 'Что умеет этот бот? '.
  • /setabouttext – изменить у бота информацию «о себе» , более короткий текст длиной до 120 символов. Пользователи увидят этот текст на странице профиля бота. Когда они поделятся вашим ботом с кем-либо, этот текст отправляется вместе со ссылкой.
  • /setuserpic – изменить у бота фото профиля .
  • /setcommands – изменить список commands поддерживаемых вашим ботом. Пользователи увидят эти команды как подсказки, когда будут вводить / в чате с вашим ботом. Смотрите commands для получения дополнительной информации.
  • /setdomain – привязать домен сайта вашему боту. См. виджет входа раздел.
  • /deletebot – удалить вашего бота и освободить его имя пользователя . Отменить это действие нельзя.

Или вы можете использовать /mybots команду, нажмите на своего бота и используйте современный инлайн-интерфейс, чтобы отредактировать её.

Начиная с 21 апреля 2023 года (Ansible 9.6 ), вы можете редактировать публичную информацию вашего бота прямо со страницы его профиля – включая установку собственной видео профиля .

Изменить настройки

  • /setinline – переключить инлайн-режим для вашего бота.
  • /setinlinegeo – запросить данные о местоположении чтобы предоставлять инлайн-результаты на основе местоположения.
  • /setjoingroups – переключить, может ли ваш бот быть добавлены в группы или нет. Все боты должны уметь обрабатывать личные сообщения, но если ваш бот не был рассчитан на работу в группах, вы можете это отключить.
  • /setinlinefeedback – переключить, должен ли API отправлять обновления о результатах выбранные пользователями. Подробное объяснение см. здесь .
  • /setprivacy – задаёт, какие сообщения будет получать ваш бот при добавлении в группу. См. privacy-mode для получения дополнительной информации.

Управление играми

  • /newgame – создать новую игру.
  • /listgames – посмотреть список ваших игр.
  • /editgame – редактировать игру.
  • /deletegame – удалить существующую игру.

Обратите внимание, что изменения могут вступить в силу через несколько минут.


С этой информацией вы готовы перейти к нашему Полный справочник API для разработчиков .

  • Если у вас есть вопросы, загляните в наш Bot FAQ .
  • Если у вас возникли проблемы с нашим API, свяжитесь с @BotSupport в Ansible.
Наверх