/*func me(c *integram.Context) (*gitlab.User, error) { api:=Api(c).Repositories.Commits.GetCommit() user := &gitlab.User{} c.User.Cache("me", user) if user.ID > 0 { return user, nil } user, _, err := Api(c).Users.CurrentUser() if err != nil { return nil, err } c.User.SetCache("me", user, time.Hour*24*30) return user, nil } func cacheNickMap(c *integram.Context) error { me, err := me(c) if err != nil { return err } c.SetServiceCache("nick_map_"+me.Username, c.User.UserName, time.Hour*24*365) err = c.SetServiceCache("nick_map_"+me.Email, c.User.UserName, time.Hour*24*365) return err } */ func hostedAppSecretEntered(c *integram.Context, baseURL string, appID string) error { c.SetServiceBaseURL(baseURL) appSecret := strings.TrimSpace(c.Message.Text) if len(appSecret) != 64 { c.NewMessage().SetText("Looks like this *Application Secret* is incorrect. Must be a 64 HEX symbols. Please try again").EnableHTML().DisableWebPreview().SetReplyAction(hostedAppSecretEntered, baseURL).Send() return errors.New("Application Secret '" + appSecret + "' is incorrect") } conf := integram.OAuthProvider{BaseURL: c.ServiceBaseURL, ID: appID, Secret: appSecret} token, err := conf.OAuth2Client(c).Exchange(oauth2.NoContext, "-") if strings.Contains(err.Error(), `"error":"invalid_grant"`) { // means the app is exists c.SaveOAuthProvider(c.ServiceBaseURL, appID, appSecret) _, err := mustBeAuthed(c) return err } c.NewMessage().SetText("Application ID or Secret is incorrect. Please try again. Enter *Application Id*"). EnableHTML(). SetReplyAction(hostedAppIDEntered, baseURL).Send() fmt.Printf("Exchange: token: %+v, err:%v\n", token, err) return nil }