Как сделать чтобы бот мог писать любому пользователю а не по id
Обновлено: 07.07.2024
Хочу сделать музыкального бота. Для него я хочу создать отдельный голосовой и текстовый чат. Я хочу, чтобы только в определенном текстовом чате были доступны его функции (чтобы включалась музыка) и чтобы он мог присоединиться только к отведенному голосовому каналу. Помогите, как это сделать? (Я не создаю своего бота, я хочу найти и настроить уже готового бота).
Начинающий программист(JavaScript и Python) Знаю практически всё о Minecraft PE · 1 авг 2020
Для этого сервер должен быть изначально правильно настроен, то есть, у @everyone не должно быть никаких прав, и должна быть роль типа @верифицирован или @участник для новых участников, а у ботов этих ролей не должно быть.
1) Настроить сервер на верификацию
2) Забрать у муз бота все права
3) Создать роль @Музыкальный бот, тоже без прав
4) Сделать каналы для музыки приватными(для @участник и @музыкальный бот)
5) В каналах для музыки выдать роли @музыкальный бот все права
6) Если что-то не понятно, могу помочь с сервером, вступив на него
В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.
Python для новичков
- / newbot — создать нового бота;
- / mybots — редактировать ваших ботов;
- / setname — сменить имя бота;
- / setdescription — изменить описание бота;
- / setabouttext — изменить информацию о боте;
- / setuserpic — изменить фото аватарки бота;
- / setcommands — изменить список команд бота;
- / deletebot — удалить бота.
Отправим бате‑боту команду / newbot , чтобы создать нового бота. В ответ он попросит ввести имя будущего бота, его можно писать на русском. После ввода имени нужно будет отправить адрес бота, причем он должен заканчиваться на слово bot. Например, xakepbot или xakep_bot . Если адрес будет уже кем‑то занят, BotFather начнет извиняться и просить придумать что‑нибудь другое.
Для взаимодействия с Telegram API есть несколько готовых модулей. Самый простой из них — Telebot. Чтобы установить его, набери
В Linux, возможно, понадобится написать pip3 вместо pip , чтобы указать, что мы хотим работать с третьей версией Python.
Эхо-бот
Для начала реализуем так называемого эхо‑бота. Он будет получать от пользователя текстовое сообщение и возвращать его.
Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal
- Page Summary
- notglamour — Без темы [+2]
- (Анонимно) — Без темы [+1]
- (Анонимно) — Тоже не реагирует на команды [+1]
- (Анонимно) — специфика ВЕБХУКА [+1]
- (Анонимно) — класс [+1]
- livejournal — Делаем простейшего бота для мессенджера Telegram [+0]
- Stanislav Kotrutsa — Без темы [+2]
- (Анонимно) — Нашёл решение [+10]
- helene50 — Без темы [+18]
- Антон Утыльев — бот не реагирует на команды [+1]
- sublustris_ru — Подскажите пожалуйста. [+1]
- (Анонимно) — программер [+1]
- (Анонимно) — Полезность [+1]
- (Анонимно) — перевод в нижний регистр (RU) [+1]
А теперь приступим к изучению того, как сделать нечто подобное.
Мессенджер Telegram является удобной платформой для создания и использования роботизированных контактов (ботов), выполняющих различные функции, расширяющие функциональность мессенджера. Классическим ботом можно считать бота получения прогноза погоды. Например, добавьте себе в контакты бота @weatherman_bot и, обращаясь к нему, сможете получить прогноз погоды для заданного города на заданном языке и на один из предустановленных промежутков времени.
- Для зачатия нашего бота нам понадобится бот-отец @BotFather. Добавляем его в контакты и отправляем ему команду /newbot. BotFather предложит дать имя нашему боту. Это имя будет отображаться в чате при общении с ботом, так что смело можем использовать кириллицу и пробелы. Если в дальнейшем вы захотите поменять это имя, то просто воспользуйтесь командой /setname.
- Далее BotFather предложит задать username (имя пользователя) для бота. Имя должно быть от 5 до 32 символов и заканчиваться словом bot, которое при желании можно отделить символом нижнего подчёркивания. Если введённое username уже будет в его базе, BotFather предложит вам ввести другое имя. В ответ на ввод правильного имени BotFather зарегистрирует нового бота и выдаст вам маркер (token) для доступа к программному интерфейсу нашего бота. Маркер представляет собой просто уникальный набор символов.
Базовое наполнение бота
Конечно, можно найти и установить себе на бесплатный сайт бесплатный SSL, можно даже использовать самоподписанный сертификат, но для Webhook есть более удобное и быстрое решение.
Регистрируемся на сайте Cloud9. Это облачная интегрированная среда разработки, в которой можно и написать, и опубликовать свой сайт. К сожалению, функционирование вашего сайта будет заморожено, если в течение недели над проектом никто не будет работать, и возобновлено в случае продолжения работ. Но для разработки и тестирования бота эта среда подходит нам как нельзя лучше. Впоследствии бота можно будет развернуть уже на настоящем хостинге, таком, как, например, Heroku, однако на бесплатном тарифе там тоже есть свои особенности — он будет работать не более 18 часов в сутки. Пока запросов на сайт нет, он засыпает и экономит своё время. При обращении он просыпается, поэтому возможна некоторая задержка первого ответа от бота. Пока пользователей у бота немного, этот вариант вполне может обеспечить круглосуточную работу.
Возможно, вы найдёте другой бесплатный хостинг с поддержкой SSL, который бы функционировал круглосуточно и без ограничений, или создадите свой самоподписанный сертификат, но для разработки и отладки бота Cloud9 является наиболее удобной средой. Далее речь пойдёт о коде на PHP, но после регистрации на сайте Cloud9 вы можете выбрать для работы и другие языки.
Создаётся ваше рабочее пространство и открывается редактор проекта. Если проект создан с нуля, то для удобства меняем имя основного файла hello-world.php на имя нашего бота. Также добавляем файл index.php со следующим содержанием (текст ИМЯ_ВАШЕГО_БОТА замените на имя сввоего бота):
В этом случае при прямом обращении из браузера по адресу вашего сайта будет предлагаться открыть контакт в Telegram. Это можно проверить, запустив проект на выполнение и нажав внизу на появившуюся ссылку с адресом вашего сайта. Не забудьте потом остановить проект. Пишем код бота Шаблонный код нашего бота будет такой:
Нажимаем кнопку Run Project. Сайт становится видим в сети и его код готов быть вызванным из бота.
Привязка бота к коду
Чтобы бот вызывал написанный нами внешний код, нам надо сообщить ему адрес нашего php-файла. Для этого копируем в строку браузера следующую ссылку:
Текст ВАШ_МАРКЕР заменяем присланным ранее маркером, а текст URL_PHP_ ФАЙЛА заменяем на полный URL php-файла с нашим кодом. Имя сайта берём из строки, появившейся снизу на вкладке Apache & PHP, и добавляем к нему имя php-файла. После перехода по этому адресу браузер в случае успешной привязки возвращает текст:
Замечу в заключение, что правку кода в Cloud9 можно выполнять на ходу, не останавливая проект.
FleepBot — профессиональный инструмент для работы в Telegram. В нём вы можете создавать себе ботов двух типов: для постинга красивых отложенных публикаций и для приёма обратной связи.
В этой инструкции мы расскажем всё про бота обратной связи.
Начало работы в боте обратной связи от FleepBot
Для начала работы, вам нужно перейти в бота, которого вы только что создали. Внутри вы увидите вот такое меню:
Вот что умеет бот обратной связи:
Статистика — данные по вашим пользователям, кнопкам и источникам трафика.
Автоответы — возможность настроить автоматические ответы на вопросы пользователей. В этом разделе вы можете научить бота отвечать на заранее подготовленные фразы вместо вас.
Команды в боте
Кроме настроек в вашем боте есть команды.
/unban - чтобы разблокировать человека в боте, используется аналогично.
Пользователь не увидит этих команд, они доступны только вам.
Другие полезные ссылки
@FleepSupportBot — техподдержка FleepBot. Если что-то не получается, то обязательно пишите - это лучшая поддержка в Telegram.
@fleepnews — здесь мы пишем про обновления проекта, выкладываем полезные материады, промокоды и кейсы.
Читайте также: