package screens import ( "context" "fmt" "github.com/NicoNex/echotron/v3" "github.com/TelegramExchange/tgex-backend/tg_bot/bot" "github.com/rs/zerolog/log" ) type Login struct{} const msgHelloLogin = ` Привет, %s! Нажми кнопку для входа на сайт. 👇 ` func (s *Login) Enter(b *bot.Bot, mode bot.RenderMode) { token, err := b.Backend.CreateLoginToken(context.Background(), b.ChatID) if err != nil { b.SendNew("❌ Произошла ошибка при создании токена входа. Попробуйте позже.", emptyKeyboard) return } loginURL := b.Backend.LoginURL(token) usernameDisplay := "аноним" if b.Session.FirstName != "" { usernameDisplay = b.Session.FirstName } kb := Keyboard(Row(URLButton("Войти на сайт", loginURL))) _, err = b.SendMessage(fmt.Sprintf(msgHelloLogin, usernameDisplay), b.ChatID, &echotron.MessageOptions{ ReplyMarkup: kb, ParseMode: echotron.HTML, }) if err != nil { log.Err(err) return } b.SetState(&MainMenu{}, bot.NewMessage) } func (s *Login) HandleCallback(b *bot.Bot, u *echotron.Update) {} func (s *Login) HandleMessage(b *bot.Bot, u *echotron.Update) {} func (s *Login) Handle(b *bot.Bot, u *echotron.Update) {} func (s *Login) Exit() {}