@ Limbo, как я вижу - сгенерированный виджет и код просто создают iframe с контентом, основанным на имени нашего бота и других параметрах.Это каждый раз одно и то же.Например, для (https://oauth.telegram.org/embed/samplebot?origin=https%3A%2F%2Fcore.telegram.org&size=medium&userpic=false), заинтересованная часть в ответе здесь:
<div class="tgme_widget_login medium nouserpic" id="widget_login"><button class="btn tgme_widget_login_button" onclick="return TWidgetLogin.auth();"><i class="tgme_widget_login_button_icon"></i>Log in with Telegram</button></div>
<script src="//telegram.org/js/widget-frame.js?27"></script>
<script>TWidgetLogin.init('widget_login', 547043436, {"origin":"https:\/\/core.telegram.org"}, false, "en");
И каждый раз она будет одинаковой. Итак, вы просто добавляете этот код на свою страницу, где вы можете настроитьстили кнопок и поместите их в любое место на странице, как вам нужно. Просто позаботьтесь о параметре id и не забудьте добавить прослушиватель событий для onClick, который будет вызывать TWidgetLogin.auth (), когда вы захотите показать всплывающее окно входа в систему.
Функция TWidgetLogin.init принимает пару параметров (target_login_btn_id, bot_id, params, init_auth, lang). Все они описаны само собой.
Интересная часть - о полученииинформация об аутентификации. Если вы проверите этот widget-frame.js, то обнаружите, что после успешной аутентификации он вызывает window.parent.postMessage(JSON.stringify(data), origin || '*');
с пользовательскими данными в параметре данных. В нашем случае (мы работаем без iframe) postMessage будет доставлено в текущее окно ивы сможете поймать его с помощью простого кода
window.addEventListener("message", function(event) {console.log('get message, evetn)}, false);
И там вы сможете получить все необходимые данные пользователя.
Хинг - источник этого сообщения.Но этот сценарий параметров получает пользовательские данные с серверов телеграмм, поэтому я подозреваю, что он будет содержать источник связанного сайта, и у нас не возникнет никаких проблем с этим.
Удачи в дальнейшем исследовании.