package screens import ( "context" "fmt" "example.com/m/bot" "github.com/NicoNex/echotron/v3" ) 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))) b.SendNew(fmt.Sprintf(msgHelloLogin, usernameDisplay), kb) } 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) { b.SetState(&MainMenu{}, bot.NewMessage) }