Вход в Telegram через подтверждение по смс: пошаговая инструкция
Коротко
Чтобы подключить вход по SMS-коду в Telegram на своем VPS, необходимо настроить Telegram-бот и API-интерфейс. В этой статье мы расскажем, как это сделать на практике.
Установка Telegram-бота для входа по SMS-коду на VPS SANSARA
Чтобы подключить вход по SMS-коду в Telegram на своем VPS, необходимо настроить Telegram-бот и API-интерфейс. В этой статье мы расскажем, как это сделать на практике.
Установка необходимых компонентов
Для начала нам понадобится:
- Аккаунт в Telegram Developer
- Аккаунт в Twilio (или другой SMS-сервис)
- Операционная система Linux (мы будем использовать Ubuntu)
- PHP с поддержкой curl и json
Регистрация Telegram-бота
- 01Зарегистрируйтесь на сайте Telegram Developer.
- 02Создайте новый бот, нажав на кнопку "Get API key".
- 03Пропишите команду /newbot в чате с ботом и следуйте инструкциям.
Настройка Twilio
- 01Зарегистрируйтесь на сайте Twilio.
- 02Создайте новый аккаунт и добавьте номер телефона для получения SMS-сообщений.
- 03Скачайте API-ключ Twilio и сохраните его в переменную окружения TWILIO_ACCOUNT_SID и TWILIO_AUTH_TOKEN.
Настройка VPS
- 01Установите PHP и пакет curl с помощью команды sudo apt-get install php7.4-curl.
- 02Создайте новый файл bot.php и напишите в него следующий код:
`php <?php // Подключение к Telegram-боту $token = 'ВАШ ТОКЕН'; $chat_id = '-123456789';
// Подключение к Twilio $account_sid = getenv('TWILIO_ACCOUNT_SID'); $auth_token = getenv('TWILIO_AUTH_TOKEN'); $client = new Twilio\Rest\Client($account_sid, $auth_token);
// Получение SMS-кода $sms_code = $client->messages->create( '+1234567890', array( 'from' => '+1234567890', 'body' => 'Ваш SMS-код: ' . rand(1000, 9999) ) );
// Отправка SMS-кода в Telegram $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, " "); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array( 'chat_id' => $chat_id, 'text' => 'Ваш SMS-код: ' . $sms_code->sid ))); $response = curl_exec($curl); curl_close($curl); ?> `
Запуск Telegram-бота
- 01Запустите команду php bot.php в терминале.
- 02Откройте Telegram и добавьте бота к себе в контакты.
- 03Нажмите на кнопку "Привет, я новый" и следуйте инструкциям.
Теперь вы можете использовать вход по SMS-коду в Telegram на своем VPS.
Регистрация Telegram-бота
- 01Зарегистрируйтесь на сайте Telegram Developer.
- 02Создайте новый бот, нажав на кнопку "Get API key".
- 03Пропишите команду /newbot в чате с ботом и следуйте инструкциям.
- 04Получите API ключ и сохраните его в безопасном месте.
Установка Twilio
- 01Зарегистрируйтесь на сайте Twilio.
- 02Создайте новый проект и получите API ключ и SID.
- 03Сохраните их в безопасном месте.
Установка PHP и необходимых библиотек
- 01Установите PHP и необходимые библиотеки на своем VPS:
` sudo apt-get update sudo apt-get install php7.4-curl php7.4-json `
- 01Создайте новый файл composer.json и добавьте dependencies:
`json { "require": { "twilio/sdk": "^8.0", "php-telegram-bot/php-telegram-bot": "^3.0" } } `
- 01Установите зависимости:
` composer install `
Настройка Telegram-бота
- 01Создайте новый файл bot.php и добавьте следующий код:
`php require DIR . '/vendor/autoload.php';
use Twilio\Rest\Client; use Telegram\Bot\Api;
$twilioSid = 'Ваш SID'; $twilioToken = 'Ваш TOKEN';
$telegramBot = new Api('Ваш API ключ'); $twilioClient = new Client($twilioSid, $twilioToken);
// Обработка входящих сообщений $telegramBot->getWebhookUpdates(); `
- 01Добавьте функцию, которая будет отправлять SMS по входному коду:
`php function sendSms($phoneNumber, $code) { $message = $twilioClient->messages ->from('Ваш номер') ->to($phoneNumber) ->body("Ваш код: $code") ->create(); } `
- 01Добавьте функцию, которая будет проверять входной код:
`php function checkCode($phoneNumber, $code) { // Проверьте, что код правильный return true; // replaced with real logic } `
Настройка вебхука
- 01Создайте новый файл webhook.php и добавьте следующий код:
`php require DIR . '/bot.php';
// Обработка входящих webhook-запросов $telegramBot->getWebhookUpdates(); `
- 01Добавьте функцию, которая будет обрабатывать входящие webhook-запросы:
`php function webhookHandler($update) { // Обработка входящего сообщения $message = $update->getMessage(); $phoneNumber = $message->getChat()->getId(); $code = $message->getText();
if (checkCode($phoneNumber, $code)) { sendSms($phoneNumber, 'Код подтвержден'); } } `
Тестируем настройки
- 01Перезагрузите веб-сервер, чтобы активировать изменения:
` sudo systemctl restart apache2 `
- 01Отправьте SMS с кодом в чат с ботом.
- 02В чате с ботом должно появиться сообщение с кодом.
FAQ
- Как я могу изменить номер, с которого отправляются SMS?
Ответ: Измените значение from в функции sendSms.
- Как я могу изменить текст SMS?
Ответ: Измените значение body в функции sendSms.
- Как я могу изменить функцию проверки входного кода?
Ответ: Измените функцию checkCode.
- Как я могу изменить функцию обрабатывания webhook-запросов?
Ответ: Измените функцию webhookHandler.
Чек-лист
- 01Зарегистрируйтесь на сайте Telegram Developer.
- 02Создайте новый бот и получите API ключ.
- 03Зарегистрируйтесь на сайте Twilio.
- 04Создайте новый проект и получите API ключ и SID.
- 05Установите PHP и необходимые библиотеки на своем VPS.
- 06Создайте новый файл bot.php и добавьте необходимые функции.
- 07Создайте новый файл webhook.php и добавьте функцию обрабатывания webhook-запросов.
- 08Добавьте функцию, которая будет отправлять SMS по входному коду.
- 09Добавьте функцию, которая будет проверять входной код.
- 10Тестируйте настройки.
Примечание
Этот гайд предназначен для опытных пользователей. Не давайте его новичкам.
Ещё по теме
Читайте также
CTA · VPSLINE
Личный VPS — без терминала и очередей
Регистрация, импорт профиля и стабильный канал на телефон и компьютер. Тот же принцип, о котором мы пишем в блоге — на практике.