in user-center-slack/importer.go [68:97]
func getSlackUserEmail(userID, token string) (string, error) {
url := fmt.Sprintf("https://slack.com/api/users.info?user=%s", userID)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return "", err
}
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token))
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
var userResponse SlackUserResponse
if err := json.Unmarshal(body, &userResponse); err != nil {
return "", err
}
if !userResponse.Ok {
return "", fmt.Errorf("failed to get user info from Slack")
}
return userResponse.User.Profile.Email, nil
}