電報による承認/ユーザー登録

このトピックでは、ソーシャルネットワークとWebサービスを介したOAuth承認と同様に、追加の、一部のサービスについて、Telegramを介したユーザーの承認と登録の主要な方法を説明します。



ユーザーにTelegramを介したアクセスを提供する特定のサービスがあるとします。 認証ページで、ユーザーは自分のユーザー名をTelegramに入力するよう求められます。 ユーザー名を入力すると、確認コードを含むメッセージがユーザーのアカウントに送信され、ユーザーが承認ページに入力します。



まず、「ライブ」テレグラムアカウント、つまり、携帯電話番号に登録されているアカウントが必要です。 この場合、 ボットは最初にメッセージを書き込むことができないため、ボットはこのタスクに適していません。



サーバー側になりました。



Telegram アプリページには、公式のtelegram-cli アプリケーションはありません。 Telegramサーバーと対話するアプリケーションの機能を実行します。



例を簡単にするために、telegram-cliは/ usr / local / src /ディレクトリに配置されます。

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







最初の起動時に、アプリケーションは「ライブ」アカウントの電話番号の入力を求めます。 番号を入力すると、このアカウントが別のデバイスで現在アクティブになっている場合、SMSまたはアプリケーションに確認コードが送信されます。 確認後、ディレクトリ「.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 &







次に、telegram-cliと対話するスクリプトが必要です。



GitHubでキーワード(telegram-cli phpクライアント)を使用すると、PHPで既製のソリューションが見つかりました。



インストール:

git clone https://github.com/zyberspace/php-telegram-cli-client

cd php-telegram-cli-client

curl -sS https://getcomposer.org/installer | php

php composer.pharインストール



次の内容のtg.phpファイルを作成します。

 <?php require('vendor/autoload.php'); $telegram = new \Zyberspace\Telegram\Cli\Client('tcp://localhost:8089'); $USERNAME = ''; if($user = $telegram->exec("resolve_username {$USERNAME}")){ if($user->type == 'user'){ $code = mt_rand(10000, 99999); $message = "Hi {$user->first_name}! Your code: {$code}"; if($telegram->exec("msg user#{$user->id} {$message}")){ echo "Send message: Success\r\n"; } else { echo "Send message: Error\r\n"; } } } else { echo "User {$USERNAME} not found.\r\n"; }
      
      





$ USERNAME変数に、確認コード付きのメッセージの送信先となるユーザーのユーザー名を入力します。



スクリプトを実行します。

php tg.php





すべてが順調に進んだ場合、メッセージがコードとともにユーザーに送信されます。



この例に基づいて、Telegramを使用してユーザー登録/承認を簡単に実装できます。



ご清聴ありがとうございました!



All Articles