func setRealNameFields(bot *slack.Bot, event map[string]interface{}) (*slack.Message, slack.Status) { channel := event["channel"].(string) if channel != bot.Channels["general"] { return nil, slack.Continue } userID := event["user"].(string) dmChan := make(chan string) userChan := make(chan interface{}) go func() { dm, _ := bot.OpenDirectMessage(userID) dmChan <- dm }() go func() { payload, _ := bot.Call("users.info", url.Values{"user": []string{userID}}) userChan <- payload }() payload := (<-userChan).(map[string]interface{}) success := payload["ok"].(bool) if !success { fmt.Println(payload) return nil, slack.Continue } user := payload["user"].(map[string]interface{}) nick := user["name"].(string) text := "Please set your real name fields. https://hacsoc.slack.com/team/%s." text += " Then click \"Edit\"." text = fmt.Sprintf(text, nick) dm := <-dmChan return slack.NewMessage(text, dm), slack.Continue }