При ограничении доступа к Telegram-боту им могут пользоваться только те пользователи, которым был предоставлен доступ вручную путем добавления их идентификаторов в список авторизованных пользователей.
Существуют два основных способа предоставления доступа:
Чтобы открыть доступ через сценарий, администратор бота должен иметь доступ к сценарию. Для предоставления ему доступа необходимо вносить изменения в сценарий, добавляя идентификаторы пользователей вручную. Для этого выполните следующее:
{messengerUserId}
в поле Сообщение. В переменной хранится идентификатор пользователя Telegram.6. Установите следующие параметры в стрелке, идущей в продолжение диалога:
Тип: Условие «ИЛИ»,
Условие: {messengerUserId}
= X, где X
— ваш идентификатор.
Идентификатор будет выведен в сообщении бота после первого запуска сценария в Telegram-боте. Или используйте команду /getid
в Telegram боте MyIdBot.
Для добавления нескольких пользователей необходимо для каждого добавить отдельное условие со сравнением идентификатора этого пользователя с {messengerUserId}
в этой же стрелке.
Если идентификатор пользователя не был добавлен в условия:
Если идентификатор пользователя был внесен в список условий:
Администратор бота может управлять списком авторизованных пользователей прямо из мессенджера Telegram, без необходимости доступа к сценарию. Это дает возможность добавлять и удалять пользователей из списка авторизованных, используя команды бота.
Чтобы открыть доступ через команду бота в Telegram, выполните шаги:
{messengerUserId}
в поле Сообщение. В данной переменной хранится идентификатор пользователя Telegram.{messengerUserId}
,$reg = fact.load("userId", $uid, @botId)
Бот попытается извлечь ID пользователя, из своей базы данных. Если идентификатор пользователя, взаимодействующего с ботом, будет обнаружен в базе данных, то этот идентификатор будет записан в переменную reg
. В случае отсутствия идентификатора в базе данных переменная reg
останется пустой.
Тип выходных данных: Условие «И»;
Условие: {reg} !=.
Выполнится проверка наличия содержимого переменной reg.
Ветки с командами идентичны, и состоят из блока Вопрос, блока Выражение и блока Информация.
В блоке Вопрос запрашивается идентификатор пользователя, которому необходимо открыть или закрыть доступ.
fact.save("userId", $user, $user, @botId)
fact.delete("userId", $user, @botId)
После этого откройте для себя доступ к командам бота. Для этого в первый блок Арифметика в сценарии необходимо заменить выражение в поле BPL-выражение на следующее:
fact.save("userId", ВАШ_АЙДИ, ВАШ_АЙДИ, @botId)
$reg = fact.load("userId", $uid, @botId)
Где ВАШ_АЙДИ
— ваш идентификатор, который вы получили при первом запуске бота.
Чтобы постоянный доступ был не у вас, введите идентификатор другого человека.
Сохраните сценарий, и еще раз запустить бота, и вы должны увидеть следующие сообщения:
Используйте команды бота /adduser и /deluser для открытия и закрытия доступа к боту. Идентификатор, необходимый для доступа, пользователь получает если запускает бота.
Таким образом вы можете сделать бота с возможностью ограничения доступа.