package discord import ( "encoding/json" "io/ioutil" "net/http" "net/url" ) type TokenResponse struct { AccessToken string `json:"access_token"` TokenType string `json:"token_type"` ExpiresIn int `json:"expires_in"` RefreshToken string `json:"refresh_token"` Scope string `json:"scope"` } func (m *Module) getToken(code string) (*TokenResponse, error) { res, err := http.PostForm(API_ENDPOINT+"/oauth2/token", url.Values{ "client_id": {m.ClientID}, "client_secret": {m.ClientSecret}, "grant_type": {"authorization_code"}, "code": {code}, "redirect_uri": {m.RedirectURI}, "scope": {m.Scope}, }) if err != nil { return nil, err } body, err := ioutil.ReadAll(res.Body) if err != nil { return nil, err } var resp TokenResponse err = json.Unmarshal(body, &resp) return &resp, nil }