Telegram — бот | Полноценное меню
Рано или поздно, в жизни разработчика телеграмм-ботов приходит чёткое осознание, того что всё бренно нужно создавать более-менее полноценные меню для ботов.
А) Это удобно
Б) Удобно для кастомизации*
Суть задачи
Исходя из выше описанного следует не самый приятный вывод — обработка запросов по вебхуку, без хранения дополнительных данных, нам не светит…
Ну что же, умываемся и приступаем к работе.
Написание Изучение кода
В своей практике, специально под эту задачу, был разработан небольшой класс.
NEW! Теперь и на гитхаб)
Если не терпится, то можете сразу переходить на репозиторий, там есть экскурс.
Продолжим
Согласен, концепция, после этого, понятной не стала… Попытаюсь разъяснить. Для понимания нужно перейти на некий уровень абстракции, то есть представьте что вся структура бота состоит из разных меню, между которыми переключается юзер(можно провести аналогию с активити андроида). При активации бота пользователь оказывается в «начальном меню», из которого он может перейти, допустим, в меню «Настройка», «Информация», и тд.
И так, структура бота немного меняется, если вкратце:
В начале проверяем, существует ли запрос:
ДА ) Запускаем «обработчик» запросов
НЕТ) Остаёмся в «начальном меню», сверяем ответ юзера с доступными командами.
*это сильно упрощённый вариант, из-за этого сбивает столку. С примерами станет проще.
Продолжим.
Начнём с установки. Для установки воспользуемся compser-ом(создаём «composer.json», после копируем в него строки ниже, подробнее читайте в офф. доках)
ИЛИ подключаем вручную(скачиваем в папку с проектом)
СОЗДАЁМ ОБЪЕКТ
СОЗДАЁМ ЗАПРОС, ПРОВЕРЯЕМ ЕГО НАЛИЧИЕ И ЗАПУСКАЕМ ОБРАБОТКУ
ПРЯЧЕМ И ДОСТАЁМ ВРЕМЕННЫЕ ДАННЫЕ
РЕЗУЛЬТАТ ФУНКЦИИ
Следует заметить, что каждая[за исключением GetFromTemp(),GetError(),ReqCheck() и конструктора] функция, возвращает массив:
Каждая функция [за исключением GetFromTemp(),GetError(),ReqCheck() и конструктора], устанавливают ошибку, в случае неудачи, которую можно проверить с помощью:
Всё собрали, в путь!
NEW! решение обхода «проблемы» с https).
Воплотим в жизнь, данный пример. Разделим пространство на два файла «botmain.php»(основное меню и обработка) и «varfunc.php»(функции обработки запросов). Для лёгкости примера будем использовать telegram-bot-sdk(хорошо сделанный и оформленный проект, удобно для небольших проектов, спасибо создателю;).
В общем, листинг:
Далее в папке проекта открываем консоль и…
UPD: В рамках Хабра исходный код становится нечитабельным, без глобальной правки. Из-за этого, если вас интересуют примеры, предлагаю вам перейти на гитхаб.
Навигация в каналах и группах
Навигация будет полезна в каналах с большим количеством постов для создания подборок тематических или для выделения из общей массы особо важных записей. Например, делаете рекламу канала, а чтобы показать ценность содержимого канала, создаете пост со списком особо интересных записей в канале и ссылками на каждую из записей в этом списке.
Канал-книга должен обязательно включать в себе пост с содержанием. Например, содержание в книге «100 советов админу в Telegram» всегда доступно по ссылке — это содержание периодически меняется и обновляется. Всегда показывается в закрепе канала для удобного доступа к нему.
Как создать навигацию по каналу или группе?
- Добавляете записи.
- Копируете ссылки на записи.
- Создаете пост с содержанием.
Добавляете записи
У Вас должны быть добавлены записи которые будут участвовать в навигации. Начинайте с наполнения канала интересными постами.
Копируем ссылки на записи
Для навигации вам потребуются ссылки на записи, которые получаем через дополнительное меню.
В Telegram Desktop надо кликнуть по посту правой кнопкой мыши для вызова дополнительного меню и в появившемся меню нажать «Копировать ссылку». В телефоне просто кликнуть по записи и в появившемся меню кликнуть «Копировать ссылку». Ссылка будет скопирована в буфер обмена Вашего устройства — вам остается добавить ее в нужный текст.
Есть нюансы
Если в приватном Telegram-канале создать меню, то оно будет работать только для подписчиков. Если такое меню репостнуть в другое место — не подписчики не смогут перейти по ссылкам в меню.
Если создать меню для публичного канал и закрыть канал — меню перестанет работать. Изменятся постоянные ссылки на записи канала.
Обязательно! Создавайте и публикуйте меню в канале только через бота — например, использую для публикации постов в канале, бота @ControllerBot. Записи добавленные без бота вы не сможете изменить через 40 часов, а добавленные через бота можно и через год редактировать.
Примеры навигации по записям и каналам
- по записям тематического каталога каналов в Telegram. по записям каталога ботов в Telegram. по записям в Telegram-канале книги. в Telegram-каталоге ботов — такое меню делает выборку постов внутри канала по специальным тегам (которые должны добавляться в записи канала). в закрытом Telegram-канале. Это новый эксперимент — обычно канал закрывают и создают публичный канал для входа. Так огромный недостаток получается — закрытые каналы не участвуют в поиске. Поэтому сделал наоборот, встречаю подписчиков в приватном канале и приглашаю в публичный.
Список с ссылками на примеры также можно назвать меню навигации по записям в каналах.
Навигация в каналах и группах
Совет для админа Telegram №72 (Навигация в каналах и группах).
Навигация будет полезна в каналах с большим количеством постов для создания подборок тематических или для выделения из общей массы особо важных записей. Например, делаете рекламу канала, а чтобы показать ценность содержимого канала, создаете пост со списком особо интересных записей в канале и ссылками на каждую из записей в этом списке.
Канал-книга должен обязательно включать в себе пост с содержанием. Например, содержание в книге «100 советов админу в Telegram» всегда доступно по ссылке — это содержание периодически меняется и обновляется. Всегда показывается в закрепе канала для удобного доступа к нему.
Как создать навигацию по каналу или группе?
- Добавляете записи.
- Копируете ссылки на записи.
- Создаете пост с содержанием.
Добавляете записи
У Вас должны быть добавлены записи которые будут участвовать в навигации. Начинайте с наполнения канала интересными постами
Копируем ссылки на записи
Для навигации вам потребуются ссылки на записи, которые получаем через дополнительное меню.
В Telegram Desktop надо кликнуть по посту правой кнопкой мыши для вызова дополнительного меню и в появившемся меню нажать «Копировать ссылку». В телефоне просто кликнуть по записи и в появившемся меню кликнуть «Копировать ссылку». Ссылка будет скопирована в буфер обмена Вашего устройства — вам остается добавить ее в нужный текст.
Есть нюансы
Если в приватном Telegram-канале создать меню, то оно будет работать только для подписчиков. Если такое меню репостнуть в другое место — не подписчики не смогут перейти по ссылкам в меню.
Если создать меню для публичного канал и закрыть канал — меню перестанет работать. Изменятся постоянные ссылки на записи канала.
Примеры навигации по записям и каналам
- по записям тематического каталога каналов в Telegram. по записям каталога ботов в Telegram. по записям в Telegram-канале книги. в Telegram-каталоге ботов — такое меню делает выборку постов внутри канала по специальным тегам (которые должны добавляться в записи канала). в закрытом Telegram-канале. Это новый эксперимент — обычно канал закрывают и создают публичный канал для входа. Так огромный недостаток получается — закрытые каналы не участвуют в поиске. Поэтому сделал наоборот, встречаю подписчиков в приватном канале и приглашаю в публичный.
Список с ссылками на примеры также можно назвать меню навигации по записям в каналах
Смотрите также:
Советы
Правильные папки в Telegram
Premium подписка в Telegram
Примеры Telegram-каналов
Смотрите
Промышленные Telegram-каналы
Рекомендуем обновляемый тематический список промышленных каналов в Telegram (производители различной продукции в промышленных масштабах). Список …
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Информация для админа в Telegram
Новый канал в каталоге
Telegram-канал проекта о головном мозге по развитию умственных способностей, работе нервной системы, строению человеческого тела и психологии.
ТОП 5 каналов Telegram
Art в Telegram • Канал для любителей фантастики, фэнтези, мистики и ужасов — Собрание картин и иллюстраций известных художников. Смотри и скачивай картины бесплатно… • Еще больше информации о канале
Каталог каталогов • Канал со списком каталогов каналов, каталогов ботов и каталогов групп в Telegram. • Еще больше информации о канале
Боты Telegram • Каталог • Полезные Боты для расширения функционала вашего мессенджера. Эксплуатируйте свой Telegram на 100%. • Еще больше информации о канале
Бизнес Клуб • База информации для создания и развития бизнеса: скрипты, программы, графика, шаблоны, видео, аудио, книги… • Еще больше информации о канале
Обучающее видео • Анонсы нового обучающего видео добавляемого на сайт Prodaga.COM. Смотри и скачай 1000+ видеоуроков бесплатно в 141 рубрике от А до Я! • Еще больше информации о канале
100 Советов админу в Telegram
Здесь вы можете скачать бесплатно советы по созданию и продвижению каналов, групп и ботов Telegram от нуля до бесконечности. А также базу данных: сайты-каталоги, боты, группы и каналы для рекламы.
Как создать постоянное меню для Telegram чат-бота
Используйте меню бота, чтобы помочь пользователям найти нужную информацию в вашем боте. Создавайте команды, которые запускают определенные цепочки. Открыть меню можно кликнув по иконке со знаком «/» в поле ввода сообщений .
Чтобы создать меню бота, на странице чат-бота откройте вкладку «Меню» и нажмите «Добавить элемент».
Введите название команды. Можно использовать до 30 символов в поле: латинские буквы, цифры и знак «_».
Введите описание — то, для чего можно использовать данную команду. В этом поле можно ввести до 200 различных символов, а также добавить эмодзи.
Выберите цепочку, которая запустится после выбора команды из списка.
Нажмите “Добавить”, чтобы добавить команду в меню.
Расширяйте меню дополнительными командами с помощью кнопки «Добавить элемент». После создания команд нажмите «Сохранить», чтобы сохранить созданные элементы.
Меню с командами готово к работе.
Вы также можете создать клавиатурное меню для пользователя из кнопок «Быстрые ответы». Вы можете добавить до 10 таких кнопок и добавить в них эмодзи.
Они отображаются у пользователя под полем ввода текста, скрываются при нажатии на соответствующий значок и пропадают после отправки следующего сообщения.