code: func (bot *BotAPI) MakeRequest(endpoint string, params url.Values) (APIResponse, error) {
  	method := fmt.Sprintf(APIEndpoint, bot.Token, endpoint)
  
  	resp, err := bot.Client.PostForm(method, params)
  	if err != nil {
  		return APIResponse{}, err
  	}
  	defer resp.Body.Close()
  
  	var apiResp APIResponse
  	bytes, err := bot.decodeAPIResponse(resp.Body, &apiResp)
  	if err != nil {
  		return apiResp, err
  	}
  
  	if bot.Debug {
  		log.Printf("%s resp: %s", endpoint, bytes)
  	}
  
  	if !apiResp.Ok {
  		parameters := ResponseParameters{}
  		if apiResp.Parameters != nil {
  			parameters = *apiResp.Parameters
  		}
  		return apiResp, Error{Code: apiResp.ErrorCode, Message: apiResp.Description, ResponseParameters: parameters}
  	}
  
  	return apiResp, nil
  }
docs: // MakeRequest makes a request to a specific endpoint with our token.