Creating a private Telegram chatbot
If you need a bot for your personal home automation, then this post describes how to achieve what is perceived as a private bot on Telegram.

Alex Sarafian
- Belgium
- Website
- GitHub
- Stack Overflow
In this post, I want to explain how to create a private bot in Telegram. With private, I’m referring to bots that are not possible to be found by others or won’t interact with others. These sort of bots are meant usually for some personal automation, where the bot act as the delivery entity to you or your family.
Not exactly a private bot
With Telegram bots are not private. Everybody can find them. The difference is that a certain communication channel with the bot can be made private. This is a group with the bot that you and the bot are members of. This sort of private channels is usually useful for home automation, where the bot is to speak with one person only.
Update 11/07/2021
Some very nice people who read recently my post pointed out that the creation of the group to maintain privacy is not necessary and just using the chat_id is good enough. Thanks to @Jerry,@Terry and @J for their feedback and clarification from the comments section. I’ve not modified the rest of the post and please refer to their comments below if you don’t want to create the group. Thanks guys.
Creating the bot
Creating the bot is generally easy by following instructions on Bots: An introduction for developers using the BotFather.
- Open a session with BotFather.
- Enter /newbot .
- Enter the name of the bot. Example Bot for Blog
- Enter a username for the bot. it must end with bot . example_blog_bot
Me, [25.03.20 16:02] /newbot
BotFather, [25.03.20 16:02] Alright, a new bot. How are we going to call it? Please choose a name for > your bot.
Me, [25.03.20 16:03] Example Bot for Blog
BotFather, [25.03.20 16:03] Good. Now let’s choose a username for your bot. It must end in bot . Like > this, for example: TetrisBot or tetris_bot.
Me, [25.03.20 16:03] example_blog_bot
BotFather, [25.03.20 16:03] Done! Congratulations on your new bot. You will find it at t.me/> example_blog_bot. You can now add a description, about section and profile > picture for your bot, see /help for a list of commands. By the way, when > you’ve finished creating your cool bot, ping our Bot Support if you want a > better username for it. Just make sure the bot is fully operational before > you do this.
Use this token to access the HTTP API: 1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA Keep your token secure and store it safely, it can be used by anyone to > control your bot.
For a description of the Bot API, see this page: https://core.telegram.org/> bots/api
That’s it. The new bot is available and anyone can find it as Example Bot for Blog.
The bot has been deleted and therefore all sensitive information is irrelevant.
Create a group with your bot
This is a simple step. We need to do this now because afterward, we will disable the ability of the bot to be added into conversations.
This group we have created is going to be also our private chat with the bot.
Disable joining groups
By default, the bot can be added to a group conversation by anybody who can find it. To make sure this doesn’t happen, we need to disable this.
- Open a session with BotFather.
- Enter /setjoingroups .
- Enter the name of the bot. @example_blog_bot .
- Enter Disable
Me, [25.03.20 16:13] /setjoingroups
BotFather, [25.03.20 16:13] Choose a bot to change group membership settings.
Me, [25.03.20 16:13] @example_blog_bot
BotFather, [25.03.20 16:13] ‘Enable’ — bot can be added to groups. ‘Disable’ — block group invitations, the bot can’t be added to groups. Current status is: ENABLED
Me, [25.03.20 16:13] Disable
BotFather, [25.03.20 16:13] Success! The new status is: DISABLED. /help
If you try to add your bot into a group, you can’t. So it is best that you already start a group with it before doing this step. You can always enable the group joining feature, create a group with it and yourself and then disable it again.
Interacting with the bot
In the Telegram Bot API the API of Telegram is described. To interact with this bot we need the API token 1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA which the BotFather provided to us. The general uri pattern is https://api.telegram.org/bot<token>/METHOD_NAME . Notice that the token follows the word bot in the URL.
For example the getMe method will provide information about the bot. Just do a GET with this URL https://api.telegram.org/bot1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA/getMe .
To send messages to this private group we’ve created with the bot, we will need to target it by providing the chat_id parameter that represents this group. The chat_id is also necessary for all integrations with other tools like Zapier or Integromat and this is why it is important.
To extract it use the getUpdates method. Do a GET with this URL https://api.telegram.org/bot1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA/getUpdates . If the result is empty then just type something to the bot in this group.
Note that this method returns results only when the bot is not enabled for privacy. If you want to enable privacy, make sure you do it after extracting the chat_id as explained below.
Hello is the message I had sent to the bot to make sure I could get results with getUpdates .
From the JSON, the chat_id is -475387861 . We can use this send a message using the sendMessage method.
The sendMethod is much more complicated but for the purposes of this demonstration, a simple GET with a simple message will suffice like this URL https://api.telegram.org/bot1101361374:AAHS_DYrAUohT-HQXVKKz-M1howAxvXdRLA/sendMessage?chat_id=-475387861&text=Hello .
And this has happened in the group with the bot
Me, [25.03.20 16:36] Hello
Example Bot for Blog, [25.03.20 16:46] Hello
Configuring for privacy
To enable encryption of the communication with the bot, you must enable the privacy feature.
- Open a session with BotFather.
- Enter /setprivacy .
- Enter the name of the bot. @example_blog_bot . Note that the @ is required.
- Enter Enable
Me, [25.03.20 16:09] /setprivacy
BotFather, [25.03.20 16:09] Choose a bot to change group messages settings.
Me, [25.03.20 16:09] @example_blog_bot
BotFather, [25.03.20 16:09] ‘Enable’ — your bot will only receive messages that either start with the ‘/’ > symbol or mention the bot by username. ‘Disable’ — your bot will receive all messages that people send to groups. Current status is: ENABLED
Me, [25.03.20 16:09] Enable
BotFather, [25.03.20 16:09] Success! The new status is: ENABLED. /help
Remember that after doing this the getUpdates method from the API will return empty results or the last encrypted message.
Как скрыть бота в Телеграм от поисковых систем
Создание собственного бота в Телеграме – это отличный способ автоматизировать многие задачи и сократить время, затрачиваемое на общение с аудиторией. Однако, есть риск того, что Ваш бот может оказаться нежелательным пользователем и быть заблокированным поисковыми движками в Телеграм.
Как же защитить своего бота от блокировки? Для этого существует несколько способов, которые мы рассмотрим далее в этой статье. Несмотря на то, что Телеграм не приветствует создание механизмов автоматизации, существует множество случаев, когда боты являются ценным инструментом работы компании или частного пользователя.
Прежде чем мы перейдем к технической стороне, рассмотрим важность защиты Вашего бота. Заблокированный бот означает потерю трафика и канала коммуникации с аудиторией. Некоторые случаи блокировки могут привести к недополученным прибылям и убыткам. Таким образом, защита Вашего бота в Телеграм может оказаться критически важной задачей, которая потребует Вашего внимания и времени.
Как безопасно снять бота в Телеграм
При использовании Телеграм ботов могут возникать ситуации, когда бот становится ненужным или приносит вред. В таком случае необходимо безопасно снять бота из чатов и каналов.
Перед снятием бота из чата следует убедиться, что он не выполняет важные задачи и не является частью бизнес-процессов. Если это так, то лучше просто остановить его работу.
Если вы уверены, что пора удалить бота, то следует сначала удалить его из всех чатов и каналов, где он присутствует. Для этого нужно перейти в настройки группы или канала, найти бота в списке участников и нажать на него. Далее нужно выбрать пункт «удалить из группы» или «удалить из канала». Если бот был добавлен в групповой чат, то его может удалить только создатель группы.
После удаления бота из всех чатов и каналов, необходимо отозвать все разрешения, которые были выданы боту. Для этого нужно перейти в настройки приложения, выбрать пункт «разрешения» и отозвать все разрешения, которые были выданы боту.
Важно помнить, что удаление бота из чата не означает его полного удаления. Бот может продолжать работать отдельно от чатов и каналов, однако поведение и возможности будут ограничены.
Как избавиться от ботов в Телеграме?
В Телеграме боты могут иногда доставлять дискомфорт и засорять список контактов, поэтому многие пользователи ищут способы, чтобы очистить мессенджер от этих ботов.
Шаг 1. Отключить ботов
Если боты стали назойливыми, можно отключить их. Для этого нужно нажать на имя бота в списке контактов и выбрать опцию «Отключить». Бот не будет больше отправлять сообщения, пока вы сами его не включите снова.
Шаг 2. Удалить ботов
Если отключение бота не помогло, можно удалить его из списка контактов. Для этого нужно зайти в настройки и нажать на пункт «Контакты и список блокированных». Затем выбрать бота и нажать на опцию «Удалить».
Шаг 3. Использовать фильтры
Если удаление ботов не помогло, можно использовать фильтры для скрытия их сообщений. Для этого нужно зайти в настройки и выбрать пункт «Фильтры». Затем создать новый фильтр и выбрать в качестве условия «Содержит слова». Далее ввести в список имена ботов или ключевые слова, которые они часто используют в своих сообщениях. Таким образом, сообщения ботов будут автоматически скрываться в главном окне чата.
Надеемся, что эти рекомендации помогут вам убрать назойливых ботов из списка контактов и сделать общение в Телеграме более комфортным.
Как сделать бота в телеграмме приватным?
При создании бота в Телеграм, он становится доступным для всех пользователей, кто знает его имя или получил ссылку на него. Чтобы сделать бота приватным, существуют несколько способов.
- Добавить бота в группу с ограниченным доступом. Если вы добавите бота в группу с ограниченным доступом, то только участники этой группы смогут взаимодействовать с ботом. Для этого необходимо создать группу и пригласить туда бота с помощью его имени.
- Использовать модификатор privacy_mode. Этот модификатор позволяет скрыть от всех пользователей команды, отправленные боту. Чтобы включить privacy_mode для бота, необходимо зайти в настройки бота в BotFather и выбрать «Edit Bot» -> «Bot Settings» -> «Groups». Там нужно включить опцию «Send messages» и выбрать «My contacts».
- Использовать inline режим. Если вы используете бота только для inline-запросов, то можно не беспокоиться о его приватности, так как при этом бот не сохраняет информацию о пользователе. Inline-запросы позволяют пользователю получать информацию или выполнить действие, не заходя в диалог с ботом.
Как исключить бота из результатов поиска в Телеграм
Если вы являетесь владельцем бота в Телеграм, вы знаете, что когда пользователи ищут похожие боты, ваш бот может оказаться в конкуренции с другими. Чтобы избежать этой конкуренции и дать своему боту преимущество, вы можете скрыть его из результатов поиска.
Для того, чтобы скрыть бота из поиска Телеграм, нужно зайти в настройки бота и нажать на «Информация о боте». Затем пролистайте страницу вниз до раздела «Public/Private» и нажмите на опцию «Private». Теперь ваш бот будет скрыт из результатов поиска
Тем не менее, имейте в виду, что это также означает, что ваш бот будет доступен только для тех пользователей, которые знают ссылку на него или которым вы отправили персональное приглашение. Так что, если вы хотите расширить свою аудиторию, лучше не скрывать его из поиска, а работать над повышением качества вашего бота.
Как заблокировать бот в Телеграм
Если вы хотите заблокировать бота в Телеграме, это легко сделать. Просто откройте чат с ботом и выберите «Блокировать» в меню бота.
Если вам нужно заблокировать бота, который прислал вам сообщение, вы можете нажать на имя бота и выбрать «Блокировать».
Другой способ заблокировать бота — это через список контактов. Откройте список контактов и найдите бота, которого вы хотите заблокировать. Нажмите на имя бота и выберите «Блокировать».
Как только вы заблокируете бота, он не сможет отправлять вам сообщения и появляться в результатах поиска. Но помните, что вы все еще можете получать сообщения от бота, если он был добавлен в другие группы, в которых вы состоите.
Скрыть бота от поиска Телеграм: полезные советы
Если вы управляете ботом в Телеграмме, вы столкнулись с проблемой поиска. Если ваш бот отображается в поиске, будущие пользователи могут найти его случайно в списке. В случае, если ваш бот предназначен для целевой аудитории, это может быть неприятно. В этой статье мы подробно рассмотрим, как скрыть бота из поиска в Телеграмме.
Скрыть бота в настройках Telegram API
Первый шаг в скрытии бота является настройка Telegram API. Войдите в панель управления ботом и найдите пункт настроек. Далее, отключите опцию «Разрешить пользователям найти бота при поиске», что позволяет вашему боту скрыться от открытого поиска в телеграме. Это очень быстрый и легкий способ скрыть свой бот из поиска.
Еще одна возможность – создание приватного канала
Вы также можете создать приватный канал Телеграм для своего бота и приглашать в него только тех, кто должен им пользоваться. Приватный канал будет недоступен в поиске, и никто не сможет найти вашего бота, если вы не приглашаете их в канал. Этот метод обеспечивает большую конфиденциальность, но может потребовать усиленного управления, например, если вы хотите, чтобы новые пользователи автоматически получали приглашение.
Заключение
Как вы можете видеть, есть несколько способов скрыть свой бот в Телеграмме. Вы можете выбрать любой, который наиболее подходит для вас, в зависимости от ваших потребностей. Но помните, что если ваш бот не будет отображаться в поисковых результатах, это может сильно затруднить его продвижение и развитие.
Как сделать так, чтобы ваш бот не появлялся в поиске Телеграм
Требования для создания скрытого бота
Для того, чтобы скрыть вашего бота из поиска Телеграм, существует несколько требований. В первую очередь, ваш бот должен быть приватным – установленным только для избранных пользователей. Также необходимо удалить все ключевые слова, относящиеся к нему, из описания чата и названия бота.
Как скрыть бота в поиске Телеграм
Чтобы скрыть своего бота от поиска Телеграм, необходимо зайти в настройки бота и изменить настройки приватности. Следует выбрать пункт «Приватный бот», чтобы ваш бот мог использоваться только пользователями, которые были приглашены им.
Для того чтобы изменить описание, следует зайти в раздел «Настройки» и выбрать «Изменить информацию». Уберите все ключевые фразы и слова, относящиеся к боту, и измените название чата. Не забудьте сохранить изменения.
Вывод
Теперь, когда вы отредактировали настройки, ваш бот будет скрыт в поиске Телеграм для всех пользователей, кроме тех, кто имеет доступ к нему. Этот метод наиболее эффективен для частных ботов и ботов, которые предназначены только для узкого круга пользователей.
Отзывы
CandyGirl23
Я очень благодарна за эту статью! Я думала, что скрыть бота в Телеграме невозможно, но оказывается, все гораздо проще, чем я думала. Я смогла легко настроить приватные чаты и теперь мои боты не будут попадать в поисковые запросы. Очень понравилось, что вы объяснили все по шагам и визуально показали, как настроить приватные чаты. Для меня это было очень важно, так как я не очень хорошо разбираюсь в компьютерных технологиях. Однако, я думаю, что статья может быть доработана. Например, было бы полезно описать, как изменить настройки безопасности бота, чтобы он не пересылал сообщения в публичные чаты. А также, можно было бы написать про другие способы скрыть бота, кроме настройки приватного чата. В целом, я очень довольна этой статьей и еще раз хочу поблагодарить за подробные инструкции. Это действительно помогло мне решить проблему со скрытием бота в Телеграме.
MissBoss
Я давно искала информацию о том, как скрыть бота в Телеграме и нашла эту статью. Она помогла мне разобраться в этом вопросе. Но я все же не до конца поняла, как настроить приватные чаты, чтобы не попасть в поиск. Было бы здорово, если бы вы пошагово описали этот процесс.
Ограничение доступа к боту в Telegram
В данной статье мы разберем как можно сделать так, чтобы общаться с ботом в Телеграме могли только конкретные пользователи.
Инструкция по интеграции бота в Telegram: Как добавить бота в Telegram?
Простой способ — открытие доступа через сценарий
При использовании данного способа для открытия пользователю доступа к боту придется редактировать сценарий, добавляя новое условие для каждого отдельного пользователя.
Фрагмент сценария

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

2) Далее необходимо установить блок условия с двумя ветками — первая ветка позволит продолжить диалог, а вторая завершит его сообщением "вход запрещен".

3) В стрелке, идущей в продолжение диалога, необходимо указать следующие параметры: тип — Условие "ИЛИ", и добавить условие 
Для добавления нескольких пользователей необходимо для каждого добавить отдельное условие со сравнением идентификатора этого пользователя с в этой же стрелке.

Пример работы фрагмента
Если идентификатор пользователя не был добавлен в условия, диалог будет выглядеть так:

Если идентификатор пользователя был внесен в список условий, диалог изменится:

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

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

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

3) Затем нужно установить блок арифметики с типом Произвольный тип, и в поле BPL-выражение скопировать следующую строку кода:
$reg = fact.load("userId", $uid, @botId)
После ввода или изменения BPL-выражений не забывайте нажать на кнопку Преобразовать BPL в AST
С помощью данной операции бот попытается загрузить факт, содержащий идентификатор пользователя, из своей базы фактов. В случае, если идентификатор пользователя, ведущего диалог с ботом будет найден в базе фактов — в переменную reg запишется этот идентификатор. Если в базе такого идентификатора нет — переменная reg будет пустой.

4) Далее необходимо установить блок условия с двумя ветками — первая ветка идет на блок информации, вторая — на блок вопроса.

В стрелке, идущей на блок информации, необходимо установить тип По умолчанию.

В стрелке, идущей на блок вопроса, необходимо выбрать тип Условие "И", и создать следующее условие:
С помощью данного условия выполняется проверка содержимого переменной reg — если она не пустая, значит идентификатор пользователя был найден в базе фактов, и доступ к дальнейшему диалогу с ботом открыт.

5) Из блока вопроса нужно вывести еще две ветки к двум новым блокам вопроса — данные ветки нужны для команд открытия и закрытия доступа для определенного пользователя.

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

Во второй стрелке все аналогично первой, но в поле ключевых слов необходимо ввести команду /deluser.

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

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

В блоке арифметики необходимо установить тип Произвольный тип, и в поле BPL-выражение внести следующие выражения:
В ветке для открытия доступа:
fact.save("userId", $user, $user, @botId)
Данная операция сохраняет идентификатор в базу фактов бота.

В ветке для закрытия доступа:
fact.delete("userId", $user, @botId)
Данная операция удаляет идентификатор из базы фактов бота.

7) Теперь вы можете сохранить сценарий, и запустить бота в Telegram. Подробная инструкция про то, как интегрировать бота в Telegram: Интеграция Телеграм
Если сценарий собран верно, вы должны увидеть следующие сообщения после запуска бота:

После этого нужно открыть для себя доступ к командам бота. Для этого в первый блок арифметики в сценарии необходимо заменить выражение в поле BPL-выражение на следующее:
fact.save("userId", ВАШ_АЙДИ, ВАШ_АЙДИ, @botId);
$reg = fact.load("userId", $uid, @botId)
Где ВАШ_АЙДИ — ваш идентификатор, который вы получили при первом запуске бота. Для того, чтобы постоянный доступ был не у вас, необходимо ввести идентификатор другого человека. Далее необходимо сохранить сценарий, и еще раз запустить бота, и вы должны увидеть следующие сообщения:

Далее вы можете вводить команды /adduser и /deluser для открытия и закрытия доступа к боту. Идентификатор, необходимый для доступа, пользователь получает если запускает бота.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Constructor for selective access telegram bots
License
kfancy/private-telegram-bot
Name already in use
- Local
- Codespaces
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Selective access telegram bots builder
With private-telegram-bot you can manage your own Telegram bot with a security layer that allow build a public, selective or private bot. Add or remove functionality to your bot is really easy. Add/remove any script in your public or private folder and you’ll can to run from your mobile. Easy! Tested in Linux and Raspberry Pi!
Using npm: npm install private-telegram-bot
Before use it you must create a bot in Telegram bot platform. It’s very easy:
More info here: https://core.telegram.org/bots With token of your new bot, edit /config/bot.json and add your token value to ‘token’ property. Also, add in the same file, your Telegram alias or username (without ‘@’) in ‘owner’ property.
Everything is ready… run with: ./private-telegram-bot.js Now you can launch commands from your Telegram bot, from your mobile. Send /help to see which commands you have ready to run.
How add your own commands
Easy. You can add any script in public or admin scripts folder. The name of your script will be a command.
By default, public and admin script folders are: [project folder]/publicScripts [project folder]/adminScripts
Only you (the bot owner) can run the ‘admins scripts’. Only who you want can run ‘public scripts’ (check ‘adduser’ and ‘removeuser’ commands) You can change public and admin folder path properties in bot configuration file (bot.json) You can add and remove commands, users, change configuration properties… without restart any process. Private-telegram-bot will detect and rebuild it any required object to get change.
How to configure it
Only bot token is required to use it but, if you want to know how to modify bot behaviour, you can do it editing simple json property files in config folder. Change bot language (currently ‘en’ and ‘es’ values), create rotate file log files, set commands timeout… etc Open your config files and take a look!
(The MIT License)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ‘Software’), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.