func mustBeAuthed(c *integram.Context) (bool, error) { provider := c.OAuthProvider() if !provider.IsSetup() { return false, c.NewMessage().SetText(fmt.Sprintf("To be able to use interactive replies in Telegram, first you need to add oauth application on your hosted Bitbucket instance (admin priveleges required): %s\nAdd application with any name(f.e. Telegram) and specify this *Redirect URI*: \n%s\n\nAfter you press *Submit* you will receive app info. First, send me the *Application Id*", c.ServiceBaseURL.String()+"/account/", provider.RedirectURL())). SetChat(c.User.ID). SetBackupChat(c.Chat.ID). EnableHTML(). EnableForceReply(). DisableWebPreview(). SetReplyAction(hostedAppIDEntered, c.ServiceBaseURL.String()).Send() } if !c.User.OAuthValid() { if c.Callback != nil { c.AnswerCallbackQuery("You need to authorize me\nUse the \"Tap me to auth\" button", true) } if !c.User.IsPrivateStarted() && c.Callback != nil { kb := c.Callback.Message.InlineKeyboardMarkup kb.AddPMSwitchButton(c.Bot(), "👉 Tap me to auth", "auth") c.EditPressedInlineKeyboard(kb) } else { return false, c.NewMessage().SetTextFmt("You need to authorize me to use interactive replies: %s", c.User.OauthInitURL()). DisableWebPreview(). SetChat(c.User.ID).SetBackupChat(c.Chat.ID).Send() } } return true, nil }