ثبت نام با تلگرام

     ۱۳۹۶-۱۲-۱۱

ثبت نام با تلگرام

ثبت نام با تلگرام

ثبت نام با تلگرام

یکی از قابلیت هایی که تلگرام اخیرا به امکانات بسیار زیاد خود اضافه کرده ، امکان ثبت نام با تلگرام است.ثبت نام با تلگرام

این قابلیت به صاحبان وبسایت ها کمک می کند تا برای ثبت نام کاربران ویدجت تلگرام را به صفحه ثبت نام اضافه کرده و کاربر با کلیک روی این ویدجت ، ثبت نامش را به راحتی و بدون نیاز به ورود مشخصات انجام دهد. مورد مشابه این قابلیت را قبلا در ثبت نام با اکانت گوگل ، فیسبوک و توییتر دیده بودیم که حال با فراگیر شدن تلگرام و راحتی دسترسی به آن، این روش ثبت نام  می تواند مورد استقبال صاحبان و همچنین کاربران وب سایت ها قرار بگیرد. ثبت نام با تلگرام

در این مطلب به آموزشی ساده و اولیه در این زمینه می پردازیم. توجه داشته باشید که مسایل مربوط به ثبت اطلاعات کاربران در دیتابیس در این آموزش پوشش داده نمی شود و تنها قابلیت ورود به سایت به کمک تلگرام و همچنین ساختن و تنظیم ربات تلگرام مورد اشاره قرا می گیرد. ثبت نام با تلگرام

ربات ثبت نام با تلگرام

در ابتدا توجه داشته باشید که برای این کار به یک ربات نیاز دارید. با استفاده از قسمت جستجو در بالای نرم افزار تلگرام عبارت @botfather را جستجو کنید و وارد آن شوید. ثبت نام با تلگرام

ثبت نام با تلگرام

در پایین روی دکمه استارت کلیک کنید تا ربات شروع به کار کند. سپس روی عبارت newbot/ کلیک کنید. حال از شما خواسته میشود که یک نام برای ربات خود انتخاب کنید. یک نام دلخواه برای ربات انتخاب کنید.(ما نام هنرتک را انتخاب می کنیم) ثبت نام با تلگرام

ثبت نام با تلگرام

در مرحله بعد باید یک آیدی برای ربات خود انتخاب کنید. (ما آیدی honartech_bot را انتخاب کردیم). درصورتی که آیدی انتخاب شده مورد تایید باشد پیامی مانند تصویر زیر به همراه توکن برای شما ارسال خواهد شد. این توکن را برای مراحل بعد ذخیره کنید.(توکن را در اختیار دیگران قرار ندهید، ما این ربات را برای آموزش ساخته و سپس حذف کردیم بنابراین این توکن زمان خواندن این مطلب باطل شده). ثبت نام با تلگرام

در مرحله پایانی کار با ربات باید یک دامنه به ربات بدهیم. دامنه ای که به ربات میدهیم همان دامنه سایت است. برای این کار دستور mybots/  را وارد کنید تا لیستی از رباتهایی که تابحال ساخته اید ظاهر شوند.

روی نام ربات مورد نظر کلیک کنید و سپس Bot Settings را انتخاب کنید. از میان دکمه هایی که ظاهر می شوند روی دکمه Domain کلیک کرده و سپس Set Domain را انتخاب کنید. ثبت نام با تلگرام

نام دامنه مورد نظر را وارد کرده و ارسال کنید تا مورد تایید قرار بگیرد. پس از مشاهده پیغام Success! Domain updated. /help می توانید از تایید شدن دامنه اطمینان حاصل کنید. کار ما با ساختن ربات تلگرام برای لاگین به پایان رسید. ثبت نام با تلگرام

می توانید با دستوراتی مانند setdescription/ توضیحات درباره این ربات و کارایی آن به زبان فارسی یا انگلیسی و با دستور setuserpic/ تصویری برای ربات خود در نظر بگیرید.(این موراد ضرورتی ندارند)

PHP

دو فایل php مورد نیاز برای این بخش با نام های login_example.php و check_authorization.php خواهند بود. برای دسترسی به فایل های اشاره شده می توانید آدرسی که تلگرام معرفی کرده مراجعه کنید(اینجا کلیک کنید) و یا کدهای زیر را در فایلی که خودتان می سازید قرار دهید.

ابتدا کدهای مربوط به فایل login_example.php . دقت داشته باشید که در خط دوم این کدها نام ربات موربوط به سایت خودتان را که در مراحل قبل ساختید ،وارد کنید.

<?php
define('BOT_USERNAME', 'honartech_bot'); // place username of your bot here
function getTelegramUserData() {
  if (isset($_COOKIE['tg_user'])) {
    $auth_data_json = urldecode($_COOKIE['tg_user']);
    $auth_data = json_decode($auth_data_json, true);
    return $auth_data;
  }
  return false;
}
if ($_GET['logout']) {
  setcookie('tg_user', '');
  header('Location: login_example.php');
}
$tg_user = getTelegramUserData();
if ($tg_user !== false) {
  $first_name = htmlspecialchars($tg_user['first_name']);
  $last_name = htmlspecialchars($tg_user['last_name']);
  if (isset($tg_user['username'])) {
    $username = htmlspecialchars($tg_user['username']);
    $html = "<h1>Hello, <a href=\"https://t.me/{$username}\">{$first_name} {$last_name}</a>!</h1>";
  } else {
    $html = "<h1>Hello, {$first_name} {$last_name}!</h1>";
  }
  if (isset($tg_user['photo_url'])) {
    $photo_url = htmlspecialchars($tg_user['photo_url']);
    $html .= "<img src=\"{$photo_url}\">";
  }
  $html .= "<p><a href=\"?logout=1\">Log out</a></p>";
} else {
  $bot_username = BOT_USERNAME;
  $html = <<<HTML
<h1>Hello, anonymous!</h1>
<script async src="https://telegram.org/js/telegram-widget.js?2" data-telegram-login="{$bot_username}" data-size="large" data-auth-url="check_authorization.php"></script>
HTML;
}
  echo <<<HTML
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Login Widget Example</title>
  </head>
  <body><center>{$html}</center></body>
</html>
HTML;
?>

کدهای مربوط به فایل check_authorization.php که عمل بررسی صحت ورود و اطلاعات را انجام میدهد ، به شکل زیر است. در خط دوم این کد توکن مربوط به ربات ساخته شده در مرحله قبل را وارد کنید.

<?php
define('BOT_TOKEN', '533092441:AAFd7tcexijjfiJIh2P8Dc1fjoJbg7w5nYA'); // place bot token of your bot here
function checkTelegramAuthorization($auth_data) {
  $check_hash = $auth_data['hash'];
  unset($auth_data['hash']);
  $data_check_arr = [];
  foreach ($auth_data as $key => $value) {
    $data_check_arr[] = $key . '=' . $value;
  }
  sort($data_check_arr);
  $data_check_string = implode("\n", $data_check_arr);
  $secret_key = hash('sha256', BOT_TOKEN, true);
  $hash = hash_hmac('sha256', $data_check_string, $secret_key);
  if (strcmp($hash, $check_hash) !== 0) {
    throw new Exception('Data is NOT from Telegram');
  }
  if ((time() - $auth_data['auth_date']) > 86400) {
    throw new Exception('Data is outdated');
  }
  return $auth_data;
}
function saveTelegramUserData($auth_data) {
  $auth_data_json = json_encode($auth_data);
  setcookie('tg_user', $auth_data_json);
}
try {
  $auth_data = checkTelegramAuthorization($_GET);
  saveTelegramUserData($auth_data);
} catch (Exception $e) {
  die ($e->getMessage());
}
header('Location: login_example.php');
?>

دو فایل php را به مسیر دلخواه در سایت انتقال دهید.(من پوشه ای به نام login ساختم و فایلها را به آن انتقال دادم)
برای بررسی صحت کار آدرس فایل login_example.php را در نوار آدرس مرورگر وارد کرده و Enter را می زنیم. ( با توجه به پوشه ای که فایلها در آن قرار دارند ، من آدرس http://honartech.ir/login/login_example.php را در نوار آدرس وارد کردم.
تلگرام ویدجت مورد نظر را بصورت دکمه ای در صفحه مرورگر نمایش می دهد.


با زدن دکمه Log In With Telegram پنجره ای جدید در مرورگر باز می شود و از کاربر شماره تلفن همراهی که به حساب تلگرامش مرتبط است را وارد کند.

با وارد کردن شماره و کلیک روی دکمه Next پیغامی از طرف تلگرام به اکانت تلگرام متصل به آن شماره تلفن ارسال می شود که حاوی  آدرس آی پی و مرورگر فرد درخواست دهنده است. در پایین این پیام دکمه Confirm برای تایید و دکمه Decline برای عدم تایید هستند.

 

با تایید این پیام عبارت Accepted نمایش داده خواهد شد .

همزمان در پنجره مرورگر از کاربر برای تایید حساب کاربری با نمایش تصویر پروفایل و نام، سوال پرسیده میشود. با کلیک روی دکمه Accept کاربر تایید می کند که این نام کاربری و تصویر و بطور کلی این حساب کاربری متعلق به اوست.

پس از تایید پیغام دیگری به اکانت تلگرام صاحب شماره ارسال می شود که شبیه پیام قبلی است و به کاربر اطلاع می دهد که از آدرس آی پی و با مرورگر اشاره شده در سایت نام برده شده وارد شده اید. در پایین این پیام هم دکمه Disconnect برای قطع ارتباط وجود دارد.

همزمان با توجه به فایل login_example.php در مرورگر کابر نام کاربر و تصویر او نمایش داده می شود.

درصورتی که بخواهید نام کاربر و اطلاعات او را در دیتابیس ذخیره کنید ، باید اطلاعات برگشتی از سمت تلگرام را مدیریت کنید. این اطلاعات شامل نام کاربر ، id کاربر و همچنین لینک تصویر پروفایل کاربر است.

توضیحات سایت تلگرام

آموزش های بیشتر

دیدگاه خود را بیان کنید

@

نرم افزار پیشنهادی