Бот для просмотра блокировки Телеграм

Рассмотрим простой вариант авторизации на сайте с помощью Телеграм без использования официального виджета.

в бот мы передадим значение в параметре start, которое обработаем и запишем в базу вместе с данными пользователя

запустим JS скрипт, который будет с интервалом в 2 секунды делать AJAX запрос на сервер для проверки появления в базе записи переданного в бот значения, и в случае обнаружения произведет авторизацию пользователя

Для начала создадим таблицу users в базе MySQL (используйте кодировку utf8mb4_unicode_ci )

CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `telegram_id` bigint(20) DEFAULT NULL, `first_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, `last_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, `auth_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

index.php

Этот файл будет выводить ссылку на авторизацию через бот в случае, если пользователь не авторизован. JS скрипт вешает на ссылку прослушку на событие click с функцией, которая через 2-х секундный интервал делает запрос на сервер. Когда ответ с сервера возвращается положительный, скрипт перезагружает страницу.

Если у пользователя обнаружена кука token то скрипт делает запрос в бд и получает первое и второе имя пользователя, которые выводит вместе с ссылкой на выход. При обработке действия «Выход», скрипт просто удаляет куку и перезагружаем страницу.

Не забудьте указать ___USERNAME__ВАШЕГО__БОТА___

else < // подключаем соединение с БД require_once(«Db.php»); // создаем объект соединения $db = new Db(); // проверяем на авторизацию if($_COOKIE[‘token’]) < // проверяем на корректность if(!preg_match(‘~^[a-f0-9]+$~’, $_COOKIE[‘token’])) < // выходим если проверка не прошла exit(); >// делаем запрос в БД $order = $db->connect()->prepare(«SELECT * FROM users WHERE auth_key = :key LIMIT 1″); $order->execute([‘key’ => $_COOKIE[‘token’]]); // если запись есть то работаем if ($order->rowCount() > 0) < $orderRaw = $order->fetch(); // Выводим имя echo trim($orderRaw[‘first_name’] .’ ‘.$orderRaw[‘last_name’]).» | «; // ссылка на выход echo «Выход»; > else < // удаляем кукку header(«Location: index.php?act=logout»); >> else < // генерируем ключ $key = md5(rand(0, 1000)); /////////////////////////////////////////////// //// username Bot /////////////////////////////////////////////// $bot = «___USERNAME__ВАШЕГО__БОТА___»; // создаем ссылки на авторизацию echo » jQuery(function ($) < $(«body»).on(«click», «.link_auth», function () < var auth_key = $(this).data(«key»); var timerId = setInterval(function () < $.ajax(< type: «GET», dataType: «json», url: «checkKey.php», data: < key: auth_key >, success: function (data) < if (data.result == «success») < clearInterval(timerId); setTimeout(function () < location.reload(); >, 1000); > > >); >, 2000); >); >); > ?>

Еще по теме:  Как сделать рубрикатор в Телеграм

webHook.php

init(); ?>

Auth.php

После инициализации объекта, передаем данные от Bot API в роутер, в котором определяем, что делать с данными. Нас интересует объект message с переданным значением параметра start в виде ключа из 32 символов. Его мы передаем в метод авторизации. По telegram_id узнаем, есть ли такой пользователь у нас в базе, если есть, то обновляем ключ, если нет то добавляем пользователя в базу, при этом записываем все нужные нам данные и ключ для авторизации.

Тут нужно еще учесть тот момент, что если вам нужна актуальная информация о пользователе, то при обновлении ключа обновляйте и все нужные данные, ведь пользователь может поменять свои данные в Телеграм, и после следующей авторизации на вашем сайте вы будете его приветствовать именем, которое получили при его регистрации, но это на ваше усмотрение.

Не забудьте указать ___TOKEN__ВАШЕГО__БОТА___

Db.php

Класс для получения соединения с базой данных. Укажите данные ваших настроек базы данных.

pdo)) < $this->setPdo(); > return $this->pdo; > /** * Создаем соединение с БД */ private function setPdo() < // задаем тип БД, хост, имя базы данных и чарсет $dsn = «mysql:host=».$this->host.»;dbname=».$this->db.»;charset=».$this->charset; // дополнительные опции $opt = [ // способ обработки ошибок — режим исключений PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // тип получаемого результата по-умолчанию — ассоциативный массив PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // отключаем эмуляцию подготовленных запросов PDO::ATTR_EMULATE_PREPARES => false, // определяем кодировку запросов PDO::MYSQL_ATTR_INIT_COMMAND => «SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci» ]; // // записываем объект PDO в свойство $this->pdo $this->pdo = new PDO($dsn, $this->user, $this->pass, $opt); > > ?>

checkKey.php

Этот файл принимает AJAX запрос со страницы index.php когда пользователь нажимает ссылку для авторизации. Он по ключу проверяет наличии записи в базе, и в случае обнаружения обновляет ключ, записывает куки и возвращает положительный результат.

Еще по теме:  Как включить видеочат в Телеграмме чтобы было видно собеседника

+$~’, $key)) < exit(json_encode([‘result’=>’error’])); > // создаем массив для возврата результата $data = []; // обращаемся в БД — проверяем наличие записи с переданным ключом $order = $db->connect()->prepare(«SELECT * FROM users WHERE auth_key = :key LIMIT 1»); $order->execute([‘key’ => $key]); // если запись есть то работаем if ($order->rowCount() > 0) < $orderRaw = $order->fetch(); // создаем новый ключ $new_key = md5(rand(0, 1000));; // записываем новый ключ в БД $update = $db->connect()->prepare(«UPDATE users SET auth_key = :new_key WHERE // если обновили то авторизуем if ($update->execute([‘id’ => $orderRaw[‘id’], ‘new_key’ => $new_key])) < // ставим куку setcookie(‘token’, $new_key); // возвращаем результат $data[‘result’] = «success»; >else < $data[‘result’] = «error»; >> else < $data[‘result’] = «error»; >// возвращаем результат echo json_encode($data); ?>

По итогу у нас получилась вполне рабочая авторизация на сайт через Телеграм без использования официального виджета Telegram. Файлы можно скачать и использовать на свое усмотрение.

Источник: imakebots.ru

Telegram заблокировал бот «Глаз бога» для поиска утекших данных

В настоящее время также были отключены и другие боты, включая «Архангел», Smart_SearchBot и Mailsearchbot.

Администраторы мессенджера Telegram заблокировали бот «Глаз бога», который использовался для поисках персональных данных людей в различных утекших и открытых базах данных. Блокировка связана с требованием Роскомнадзора удалить ботов, разработанных для сбора конфиденциальной информации граждан из утекших баз данных различных ведомств и компаний. Создание таких ботов нарушает законодательство о защите персональных данных, а их использование — права субъектов данных. По запросу Роскомнадзора также были отключены и другие боты, включая «Архангел» и Smart_SearchBot, позволявшие искать по имени и номеру телефона, а также Mailsearchbot, искавший логины и пароли от почтовых адресов.

Спустя час после блокировки бот «Глаз Бога» стал доступен по новому адресу.

Источник: www.securitylab.ru

Что такое черный список в Телеграм

Что такое черный список в Телеграм

Как заблокировать пользователя в Телеграм, а так же канал, группу или назойливого бота, читайте нашу пошаговую инструкцию. Блокировка в Телеграм требуется для того, чтобы забанить надоедливых пользователей спамящих в личные сообщения или бота, который закидывает «личку» своими уведомлениями. Пользователь, который будет заблокирован, не сможет позвонить или написать сообщение.

Еще по теме:  Как выложить большое видео в Телеграм

Для Android и устройств на базе iOS

Блокировка через меню: – Запускаем Телеграм – Открываем меню (в левом верхнем углу) – Заходим в настройки – Нажимаем «Конфиденциальность» – В самом верху нажимаем «Черный список» – В правом верхнем углу нажимаем на кнопку «Добавить» и добавляем пользователя которого хотим заблокировать. Блокировка в чате: – В чате с пользователем нажимаем на имя профиля – Далее «три точки» в правом верхнем углу – Нажимаем «Заблокировать» и подтверждаем. Для блокировки бота достаточно зажать на чате с ним, нажать на «три точки» в правом верхнем углу и кликнуть «заблокировать».

Блокировка канала или группы

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

Разблокировка пользователя в Телеграм

Если блокировка пользователя уже неактуальна, то можно выполнить теже действия как и с блокировкой, только вместо заблокировать будет кнопка «разблокировать» или перейти в чат с заблокированным человеком, если он не удален и на месте ввода сообщения будет большая кнопка «разблокировать». Так же можно зайти в черный список Телеграм, где будет перечень всех заблокированных пользователей и ботов. Найти его несложно, достаточно зайти в настройки, далее конфиденциальность и черный список будет в самом верху, справа будет указано количество заблокированых.

Как определить, что вы заблокированы

Пользователю не приходит никаких уведомлений о том, что его добавили в черный список, узнать о блокировке можно по нескольким признакам: – Сообщения не читаются долгое время – Собеседник «Был в сети давно» – Аватарка профиля скрыта.

Источник: linkbaza.com

Рейтинг
( Пока оценок нет )
Загрузка ...