В данном топике хочу описать дополнительный, а для некоторых сервисов возможно и основной способ авторизации и регистрации пользователя через Telegram, подобно OAuth авторизации через социальные сети и web-сервисы.
Допустим, у Вас есть некий сервис, который предлагает пользователям вход через Telegram. На странице авторизации пользователю предлагается ввести его Username в Telegram. После ввода Username, на аккаунт пользователя приходит сообщение с кодом подтверждения, который он вводит на странице авторизации.
В первую очередь нам потребуется «живой» аккаунт в Telegram, то есть аккаунт который зарегистрирован на мобильный номер телефона. В данном случае боты не подходят для данной задачи, так как боты не могут писать сообщения первыми.
Теперь что касается серверной стороны.
На странице приложений Telegram есть не официальное приложение telegram-cli. Оно и будет выполнять функцию приложения которое будет взаимодействовать с сервером Telegram.
Для упрощения примера telegram-cli будем ставить в каталог /usr/local/src/:
Как зарегистрироваться в Telegram
cd /usr/local/src/
Клонируем репозиторий:
git clone —recursive https://github.com/vysheng/tg.git cd tg
Ставим необходимые пакеты:
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev python-dev
Собираем telegram-cli:
./configure make
При первом запуске, приложение попросит ввести номер телефона нашего «живого» аккаунта. После ввода номера, будет выслан код подтверждения по смс или в приложение если данный аккаунт сейчас активен на другом устройстве. После подтверждения, в вашем домашнем каталоге будет создана директория «.telegram-cli» в которой будут хранится файлы конфигураций для указанного аккаунта.
Запускаем:
/usr/local/src/tg/bin/telegram-cli -k /usr/local/src/tg/tg-server.pub
Видим следующую картину:
Выходим из приложения:
quit
Запускаем приложение как демон например на порту 8089:
/usr/local/src/tg/bin/telegram-cli —json -k /usr/local/src/tg/tg-server.pub -W -d -P 8089 resolve_username «))< if($user->type == ‘user’)< $code = mt_rand(10000, 99999); $message = «Hi first_name>! Your code: «; if($telegram->exec(«msg user#id> «)) < echo «Send message: Successrn»; >else < echo «Send message: Errorrn»; >> > else < echo «User not found.rn»; >
В переменную $USERNAME вписываем username пользователя которому будет отправлено сообщение с кодом подтверждения.
Запускаем скрипт:
php tg.php
Если все прошло успешно, пользователю будет отправлено сообщение с кодом.
На базе данного примера можно легко реализовать регистрацию/авторизацию пользователей через Telegram.
Почему не приходит SMS для авторизации в Telegram? Решаем проблему СМС для входа в Телеграмм!
Спасибо за внимание!
- telegram
- authentication
- autorization
- Разработка веб-сайтов
- API
Источник: habr.com
Регистрация в мессенджере «Телеграмм»
Telegram — мессенджер для смартфонов с операционными системами Android, iOS, Windows Phone и компьютеров (PC и Mac). Разработан Павлом Дуровым, основателем популярной в Рунете соцсети ВКонтакте. Позволяет обмениваться сообщениями и медиафайлами, использовать стикеры (добавлять свои и модифицировать предустановленные).
Согласно статистическим данным на февраль 2016 года, в Телеграмме общаются свыше 100 млн. человек, за сутки сервис доставляет более 15 млрд. сообщений. Ещё 2 годами раннее, в 2014, он был признан самым скачиваемым приложением Apple App Store в 48 странах.
Зарегистрироваться в Телеграмме можно на мобильном девайсе и компьютере с действующим номером мобильного.
Telegram разрешил авторизироваться на сайтах с помощью своего аккаунта
Команда разработчиков мессенджера Telegram неожиданно добавила в него новую функциональную возможность, которая должна сделать весь сервис для общения еще более популярным. Теперь авторизироваться на различных веб-сайтах можно с помощью своей учетной записи, что позволяет отказаться от регистрации на новых интернет-ресурсах. Всем разработчики предоставили специальные API, позволяющие добавить на сайт поддержку новой функциональной возможности.
Чтобы войти через учетную запись мессенджера необходимо найти на сайте виджет «Telegram Login» который может иметь различный вид, но в классическом варианте он указан как «Войти через Telegram». После нажатия на эту кнопку потребуется ввести номер, на который зарегистрирован мессенджер, а затем подтвердить вход с помощью кода, который приходит на номер телефона или же прямо в рамках всего сервиса в виде электронного сообщения.
Разработчики для внедрения новой функции должны использовать специального бота, позволяющего пользователю авторизироваться на сайте. Команда Telegram утверждает, что новый способ авторизации на сайтах абсолютно безопасен, потому как личные данные пользователи не передаются стороннему веб-сайту, за исключением основных – никнейма и имени. При необходимости, прямо в настройках мессенджера, пользователь может отменить авторизацию на конкретных отдельных сайтах.
Также в настройках Telegram теперь есть специальный раздел, в котором отображается полный перечень всех сайтов, в которых была произведена авторизация через мессенджер. Новая функциональная возможность однозначно придется по вкусу всем пользователям этого сервиса для общения, а еще она должна сделать его более популярным, поскольку теперь достаточно иметь один аккаунт для авторизации везде, но конечное слово за разработками, которые должны добавить такую возможность на свой сайт.
Проверить работу новой функции можно здесь.
Источник: akket.com