Как убрать отправку сообщений боту telegram
Falcon Space - это платформа для создания веб-решений с управлением через SQL. Все создается и управляется на SQL. Телеграм бот управляется полностью 1 хранимой процедурой на SQL!
2. В web.config / AppSettings настраиваем следующие параметры:
3. В таблице as_users добавляем 2 поля:
4. Создаем хранимую процедуру такого вида (в разделе Системный SQL / Telegram Bot):
- SELECT 1 - Result и Msg
- SELECT 2 - набор команд для telegram (актуально если SELECT1.Result=1). Type, Text, ChatID, replyMessageID, DisableNotification, Channel, ButtonsJSON, parseMode
5. Проверяем, что работает бот. Подписываемся на него в telegram и выполняем /start (при этом мы получим отклик Привет. ). Если нет отклика, значит бот не запущен. Попробуйте его перезапустить в разделе Системный SQL (Старт телеграм бот).
6. Чтобы подписать пользователя на некие действия, необходимо сначала чтобы он указал свой телеграм в профиле (поле as_users.telegram). Затем он должен сделать любую команду в телеграме, отправив боту к примеру /start
Хранение привязки чата к пользователю системы
Использование бота
- В телеграм находим бота (например, наш бот FalconSpaceBot)
- Пишем ему /start для инициализации (осуществляется привязка вашего пользователя к чату).
- Выполняем различные команды, например /getupdates - если команда прописана в чате, то она будет обработана и выдан ответ.
Включение/выключение бота
Бот включается при запуске всего веб приложения (Global.asax/app_start).
Чтобы его выключить в вручную можно из-под админа использовать команду (перейти на URL) /Controls/Stuff/StopTelegramBot
Для включения - /Controls/Stuff/StartTelegramBot
Детали реализации бота
Howto по Telegram боту
Не работает бот Telegram. Что делать?
- Проверьте что прокси прописан в web.config
- Проверьте что прокси не просрочен
- Проверьте что бот в целом отвечает.на ваши команды в телеграм (если не отвечает)
- Попробуйте запустить заново бота /Controls/Stuff/StartTelegramBot (либо перезапустите пул приложения в IIS)
- Проверьте as_trace (коды TG и Exception). В нем пишутся ошибки и инициализация и завершение потока бота.
- Сделать as_print в процедуре и посмотреть попадает ли туда бот.
- Бот может остановиться если вы запущена локальная отладка (в этом случае возникает конфликт обновлений, поэтому необходимо отключать бота при локальном запуске - в web.config убирать токен).
- Бот может падать если выключается автоматически пул IIS. Необходимо его настроить так, чтобы он не отключался при простое.
Для этого используем Внешнее действие (в формах и др элементах) с кодом telegram.
У пользователя должны быть корректно проставлены поля telegram (заносится сначала вручную для пользователя его логин) и telegramChatID(проставляется автоматически при первом обращении юзера к боту через Телеграм) в as_users. Также можно указать имя в виде '@username' - тогда отправка будет по логину телеграма (если он есть в tg_settings).
buttonsJSON задает настройки кнопок.
ВАЖНО! Необходима реализация процедуры tg_getChatID:
Для этого используем символ "-" и chatID в параметре to
Примечание: бот необязательно должен быть администратором группы.
Для этого используем Внешнее действие (в формах и др элементах) с кодом telegram.
Бот должен быть добавлен администратором в канал при этом.
ВАЖНО! Необходима реализация процедуры tg_getChatID
Как сделать рассылку пользователям при сохранении формы.
Как работать с кнопками Телеграм
Кнопки могут быть либо Inline (в чате при ответе), либо Reply(внизу под чатом).
Кнопки передаются в виде JSON в параметре SELECT 2 ButtonsJSON:
Для Inline кнопок указываем:
- Text - название кнопки.
- CallbackData - данные для передачи в процедуру
- Url - если указан, то кнопка будет открывать указанный адрес. ВАЖНО! Вводите корректный URL, иначе будет исключение и вся исходная команда не будет работать.
Для reply кнопок команда используется в поле text. Также для них есть 2 настройки:
- ResizeKeyboard - Requests clients to resize the keyboard.
- OneTimeKeyboard - Requests clients to hide the keyboard as soon as it’s been used.
В процедуру для инлайн кнопок будет передаваться как команда поле callbackData, а для reply кнопок - поле text.
Дополнительная информация о кнопках Телеграм:
Выбираем символ, на страницу символа берем его код UTF16 LE
В SQL используем этот код следующим образом:
Для этого используется параметр paseMode='html' (это значение используется по умолчанию).
Есть альтернативные способы разметки - default, markdown, markdownv2.
Как быстро подписать пользователя на телеграм бота
Пользователь переходит на бота и нажимает там кнопку Запустить. При этом ваша команда /start должна учитывать что в этом случае придет она как /start 1
Т.е. используем left () для определения команды start, а не точное соответствие.
Многоступенчатые команды в боте
Для этого используются следующие поля в tg_settings:
- currentCommand - текущая рабочая команда (в рамках которой пользователь вводит данные).
- currentCommandStep - текущий шаг в команде (для определения какой текст вывести в рамках команды).
- currentCommandData - здесь накапливаются данные по выполнению команды.
Пример кода такой команды:
В примере указан полный код процедуры бота с обработкой start, меню и бизнес-логикой ступенчатой команды. Также в коде есть пример как использовать Эмоджи в боте.
Ответ: Телеграмм боты - это программы внутри мессенджера, созданные людьми для выполенения какой-либо задачи или цели, например:
- Фильтрация слов и контроль за чатом в группе
- Помощь в поиске картинок и музыки
- Редактирование и форматирование видео файлов
- Навигация на нужный сайт и др.
Что делать если телеграмм канал или бот нарушает авторские права?
Как создать бота?
Ответ: Принять участие в создание Telegram-бота может принять каждый человек, но для этого Вам потребуется знать хотябы базовый уровень знания компьютерного программирования. Если вы не знаете как создать бота в телеграмме, можно нанять разработчиков на просторах интернета.
Приходят уведомления от бота, как остановить и удалить его?
Ответ: При желании прекратить общение и удалить чат с ботом, Вы можете его заблокировать, точно также как осуществляется блокировка пользователей . Просто перейдите в профиль телеграм бота и нажмите на кнопку "Остановить бота", а затем на кнопку "Удалить чат".
Существуют некоторые "Умные" боты, которых можно заставить замолчать одной командой, проверить команды можно написав в чат "/", "/help", "/помощь".
Безопасно ли общаться с ботами?
Ответ: Телеграм боты видят всю информацию о пользователе: имя, фото профиля (аватар), номер телефона (если он отображается). Отправляя боту информацию помните, что по ту сторону экрана данные может просмотреть другой пользователь и использовать их в корыстных целях.
Мы советуем, не отправлять личные фото, видео, пароли, номера счетов, а также любую другую информацию незнакомому боту. Также, в целях безопасности, не следует открывать файлы, присланные ботом.
Ответ: Сначала, требуется разобраться, какую роль исполняет бот и для чего его добавлять в группу. В большинстве случаев ботов добавляют в сообщества для:
Если же в вашей группе ведутся слишком секретные беседы, советуем Вам не добавлять не проверенных телеграм ботов.
Есть ли телеграмм боты созданные Telegram’ом?
Ответ: Компания Telegram не создавала еще ни одного бота, хотя поддерживает некоторые официальные боты, например: @gif, @pic ( Опробовать ботов в веб телеграмм ). Телеграм ботов создают разработчики, используя навыки компьютерного программирования.
Как найти телеграмм бота?
Ответ: На сегодняшний день еще не существует полного каталога, но есть список самых полезных и популярных телеграм ботов. Также Вы можете узнать о новых ботах у своих знакомых и друзей.
Выдача прав боту
Перейдём непосредственно к коду. Дабы упростить себе жизнь, зададим нужные условия срабатывания (нужный ID чата и непустой массив entities) сразу в хэндлер, это сэкономит нам несколько лишних проверок.
Read-Only и прочие «мягкие» наказания
Начиная с Telegram 4.1, у администраторов групп появилась возможность точечно настраивать права и ограничения пользователей. В Bot API за операцию ограничения ответственен метод restrict_chat_member , принимающий на вход ID чата, ID юзера, список ограничений, а также параметр until_date со значением времени (Unix Time), до которого эти ограничения действуют, причём если указать время с разницей меньше 30 секунд или больше 366 дней от текущего, Telegram воспринимает это, как «навсегда». В нашем случае Read-Only режим будет выдаваться на 10 минут, т.е. 600 секунд.
Давайте теперь разберёмся, на каком языке отвечать пользователю. В объекте User есть поле language_code , содержащее языковую метку пользователя. Не всё так просто, ведь в зависимости от настроек системы и местоположения пользователя, его языковая метка может быть ru , en-GB , en-US или вообще какой-нибудь nan-Hant-TW . Подробно о строении таких меток можно прочесть здесь. В нашем случае задача немного упрощается, т.к. нам нужен только первый элемент (сам язык), независимо от региона (будем считать, к примеру, что «английский» английский и американский английский для нас одинаковы). Напишем наипростейшую определялку языка, которая будет возвращать ru для русского языка и en для всех остальных. В реальной жизни, конечно, стоит сделать поддержку большего числа языков.
И подготовим небольшой JSON со строками:
Теперь напишем обработчик, который будет реагировать на набор фраз, выдавать режим Read-Only пользователю на 10 минут и уведомлять его на родном языке. Не забудьте импортировать метод time из одноимённого модуля!
Запустим бота и попросим людей с разными language_code выступить в роли противников мяса:
Бот-полиглот
Заключение
Как отписаться от бота в Telegram?
Во-вторых, в чат-ботах мало рекламы. Они больше фокусируются на потребностях пользователя и на прогнозировании его желаний.
В-третьих, они не требуют повторного входа. Пользователям не нужно подписываться или авторизоваться каждый раз, когда им что-то нужно. Люди используют программу для решения проблем, а когда в ней больше нет необходимости, они могут отключить чат. Сделать это несложно.
Нужно выполнить следующие действия:
- Нажать на его имя и не отпускать несколько секунд.
- В появившемся окне выбрать «Удалить».
Возможные проблемы
Не стоит переживать, что робота больше не удастся вернуть. При желании его можно заново добавить в Telegram. Но важно понимать, что переписка может сохраниться на серверах разработчика. Если аккаунт не будет удален через поддержку, то при новом заходе в робота он узнает юзера и, как правило, продолжит с той точки, на которой произошла остановка.
Важно понимать, что если робот был взломан, то он не получит от юзера больше информации, чем он сам ему предоставит. Поэтому при малейших подозрениях нужно прекратить использование программы и уведомить разработчиков.
Читайте также: