как сделать меню в телеграмм группе
Telegram — бот | Полноценное меню
Рано или поздно, в жизни разработчика телеграмм-ботов приходит чёткое осознание, того что всё бренно нужно создавать более-менее полноценные меню для ботов.
А) Это удобно
Б) Удобно для кастомизации*
Никто, конечно же, не отменял «/команды», но всё же
Суть задачи
Немного подробнее: Используя метод getUpdate — вы получаете объект Update, логично же! Так вот, этот объект содержит много чего полезного, включая информацию о сообщении, но только о последнем. В этом и загвоздка
Исходя из выше описанного следует не самый приятный вывод — обработка запросов по вебхуку, без хранения дополнительных данных, нам не светит…
Ну что же, умываемся и приступаем к работе.
Написание Изучение кода
В своей практике, специально под эту задачу, был разработан небольшой класс.
Если не терпится, то можете сразу переходить на репозиторий, там есть экскурс.
Продолжим
Согласен, концепция, после этого, понятной не стала… Попытаюсь разъяснить. Для понимания нужно перейти на некий уровень абстракции, то есть представьте что вся структура бота состоит из разных меню, между которыми переключается юзер(можно провести аналогию с активити андроида). При активации бота пользователь оказывается в «начальном меню», из которого он может перейти, допустим, в меню «Настройка», «Информация», и тд.
И так, структура бота немного меняется, если вкратце:
В начале проверяем, существует ли запрос:
ДА ) Запускаем «обработчик» запросов
НЕТ) Остаёмся в «начальном меню», сверяем ответ юзера с доступными командами.
*это сильно упрощённый вариант, из-за этого сбивает столку. С примерами станет проще.
Продолжим.
Начнём с установки. Для установки воспользуемся 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 бота
Чтобы создать меню бота, на странице чат-бота откройте вкладку «Меню» и нажмите «Добавить элемент».
Введите название команды. Можно использовать до 30 символов в поле: латинские буквы, цифры и знак «_».
Введите описание — то, для чего можно использовать данную команду. В этом поле можно ввести до 200 различных символов, а также добавить эмодзи.
Выберите цепочку, которая запустится после выбора команды из списка.
Нажмите “Добавить”, чтобы добавить команду в меню.
Расширяйте меню дополнительными командами с помощью кнопки «Добавить элемент». После создания команд нажмите «Сохранить», чтобы сохранить созданные элементы.
Меню с командами готово к работе.
Вы также можете создать клавиатурное меню для пользователя из кнопок «Быстрые ответы». Вы можете добавить до 10 таких кнопок и добавить в них эмодзи.
Они отображаются у пользователя под полем ввода текста, скрываются при нажатии на соответствующий значок и пропадают после отправки следующего сообщения.
Оценка: 4 / 5 (22)
IoBroker. Inline меню для Telegram бота
В этой статье мы с вами по шагам будем создавать меню для telegram бота Умного Дома. Рекомендую изучить минимальные азы по языку программирования JavaSсript, это облегчит понимание того, что тут вообще происходит.
Приготовления
При увеличении количества написанных скриптов, будет нарастать бардак в дереве, поэтому рекомендую сразу приучать себя разбивать скрипты по группам.
Добавим новую группу в папку common
И назовем ее например Telegram. В этой группе в дальнейшем можно будет создавать все скрипты, которые будут относиться к работе с драйвером Telegram.
Вот теперь можно добавить наш будущий скрипт для меню. Для этого надо выделить созданную группу Telegram и нажать кнопку Новый скрипт
Поменяем имя на Телеграм бот, и сохраним изменения.
Все готово к созданию меню для Умного дома.
Создаем Меню
Предварительно необходимо на листике или в уме подготовить набросок древовидной структуры будущего меню
В этой статье попробуем реализовать подобную структуру меню.
Не обязательно придерживаться разбиения по комнатам, рекомендую в основные ветки выносить управление тем, что чаще всего используется, т.к. допустим для запуска Сцены 3 в зале надо сделать целых 4 нажатия!
Ежедневно запускать сценарий по такому длинному пути быстро надоест 🙂
Набросаем наше дерево в скрипте
В первой строке в квадратных скобках перечисляются основные кнопки (ветки) меню, плюс дополнительно добавляется кнопка Закрыть. Она позволит закрывать меню в чате бота, чтобы у нас не получилось куча сообщений от бота с открытыми менюшками. Ну и в конце текст в кавычках ‘Меню’ тоже обязателен. В этом месте будет указываться название вышестоящей ветки меню, т.к. первая строка уже является верхушкой дерева, то текст в этом месте дублирует начало.
Отступы для каждой строки сделаны лишь для удобства восприятия структуры меню и никакой функциональности не несут.
Внимательный читатель, надеюсь, обратил внимание что названия веток меню в наброске и в коде отличаются 🙂 Почему так сделано, будет описано дальше.
Дальнейший код будет описан только в объеме, необходимом для оформления своего меню, плюс краткое пояснение функций.
Добавляем в скрипт весь остальной код.
Уже на этом этапе можно проверить работу меню. Для этого сохраняем скрипт, запускаем и в Telegram отправляем боту слово Меню (внимание, слово должно быть с большой буквы) или Кнопки.
Как создать чат-бота или бота для канала в Телеграм: учимся создавать ботов, команды, меню, отложенные посты, опросы и включаем автопостинг из социальных сетей или rss-лент
Всем привет! Сегодня я расскажу вам о том, как создать бота в Телеграм и зачем это может понадобиться владельцу популярного канала. Сразу хочу успокоить – уметь программировать не нужно. Хотя, конечно, если вы заядлый программист, то флаг вам в руки. Говорят, это достаточно просто.
Итак, зачем же нужны боты в Telegram и как их создать новичку? Как настроить меню, добавить команды или активировать автопостинг из социальных сетей? Давайте разбираться.
Зачем нужны боты
Telegram — один из самых популярных мессенджеров в России, постепенно завоёвывающий любовь и признание во всём мире. Его создателем является Павел Дуров, некогда создавший социальную сеть ВКонтакте. Мессенджер обладает множеством функций, при этом он абсолютно бесплатный. Даже стикеры вы можете подключить на халяву или сделать самостоятельно.
Одной из уникальных и очень удобных фишек приложения считаются боты. Они служат для выполнения самых разных задач:
Как видите, вариантов использования много, а ведь я назвал далеко не все. Но, могу вас заверить, без помощи бота создать по настоящему интересный и полезный канал, посты в котором будут привлекать пользователей и подталкивать их к подписке – невозможно.
Способы создания бота в Telegram
Всего существует два способа, как можно сделать помощника для чата или канала. Первый, как вы уже могли догадаться – для программистов. Добавлю только, что для работы придется воспользоваться Telegram API. Я в этом не силен, поэтому выбираю второй вариант. Он не требует никаких дополнительных навыков и вполне подходит новичкам.
Как создать
Для начала вам нужно найти @Manybot и подписаться на него, нажав кнопку «Запустить»:
Чтобы не париться с языком – выбираем «Русский»:
Нажимаем «Добавить нового бота»:
А теперь нужно следовать инструкции, которую пришлют в чат и подключить нового бота. Для этого нажимаем вот сюда:
Активируем его и щелкаем вот по этой команде:
Вводим имя (обязательно латиницей) и нажимаем отправить. Снова вводим название, но уже пользовательское (оно обязательно должно заканчиваться словом «bot»).
Рекомендую просто к уже придуманному имени добавить требуемое окончание.
Остается скопировать следующий API:
И прислать его Manybot:
Описываем назначение нашего бота или скипаем данный шаг.
Поздравляю, вы справились и сделали своего первого бота для чата или канала в Telegram! Теперь его можно подключать (добавить, как подписчика) и обучать различным командам.
Если не знаете, как подключить помощника к каналу, то вот инструкция. Вам нужно:
Для чата процедура идентичная. Ну, если разработчики ничего не изменили. А теперь давайте научимся подключать различные команды.
Прописываем команды
Я не буду особо заморачиваться и сделаю что-нибудь простенькое. Вам главное запомнить принцип, а дальше все пойдет, как по маслу.
Чтобы прописать команду нужно:
Довольно просто, правда? Теперь, когда люди активируют вашего бота и пропишут команду, получат в ответ заранее созданное сообщение.
Чтобы отредактировать уже созданную команду необходимо вернуться в главное меню и зайти в раздел «Пользовательские команды», после чего выбрать нужную:
Как создать меню в боте
Если есть время и желание довести своё творение до ума, то создание красивого меню в вашем боте – отличный выбор. Для этого нужно:
Если вам вдруг приспичило настроить внешний вид, переименовать кнопку или вовсе её удалить, нужно снова зайти в «Команды» и «Настройки меню», после чего нажать на желаемую клавишу. Дальше дело техники, а все возможные варианты настройки вам сразу же покажут:
Полезные фишки
А сейчас я продемонстрирую три крутые фишки, которыми можно воспользоваться после создания бота в Телеграме.
Как включить автопостинг из соц сетей
Первая и самая интересная – автопостинг из социальных сетей (ВК, Twitter, YouTube) или RSS ленты в канал или чат в Telegram. Она позволяет сэкономить уйму времени и упростить продвижение канала. Чтобы её включить, нужно:
Всё, теперь новые записи в соц. сетях или rss ленте будут автоматически дублироваться в чате или канале.
Для ВКонтакте нужна именно публичная страница, с личной такое не прокатит.
Учимся делать отложенные посты
Еще одна полезная функция – отложенные посты. Довольно часто бывают ситуации, когда времени на публикацию нет, а сделать это просто необходимо. Чтобы не забивать голову решением подобных проблем, в Telegram можно заранее продумать темы публикаций, подготовить материал и воспользоваться ботом, который сам все отправит в указанное время.
Итак, для начала вам нужно ввести /newpost или выбрать «Отправить новое сообщение» в меню. Придумываем текст, добавляем картинки или музыку, отправляем всё это боту и нажимаем «Отложить».
Выскочит оповещение, после чего нужно указать текущее время (настраиваем часовой пояс – это делается один раз):
Теперь нужно указать время публикации. Для этого выбираем день и отправляем точное время, нажимаем «Сохранить»:
Готово! В нужный час публикация отобразится у всех пользователей.
Как создать опрос
Последняя важная функция, которую я сейчас разберу – опросы. Ну, тут без комментариев, сами должны понимать, зачем они нужны и как ими воспользоваться для продвижения канала. Моё дело рассказать, как их создать.
Для начала нажмите «Пользовательские команды» и «Создать». Введите и отправьте название:
Нажмите «Добавить вопрос» и выберете его тип (я выбрал обычный):
Введите и отправьте вопрос:
Нажмите сохранить и всё, готово. Кстати, чтобы проверить ответы, вернитесь в главное меню и нажмите «Ответы на формы», после чего найдите и выберете нужную:
Заключение
Как видите, создать бота в Телеграм достаточно просто и быстро. Они полезные, а когда дело доходит до украшения публикаций, проведения опросов и улучшения администрирования – становятся просто незаменимой палочкой выручалочкой в руках админа.
На этом всё. Подписывайтесь и до встречи в следующих статьях. Пока-пока!