code: func paramsForMessage(params *Params) (*url.Values, error) {
  	urlParams := &url.Values{}
  
  	if params.Body == "" && params.MediaUrls == nil {
  		return nil, errors.New("Body or MediaUrls is required")
  	}
  	if params.Body != "" {
  		urlParams.Set("body", params.Body)
  	}
  	if params.MediaUrls != nil {
  		urlParams.Set("mediaUrls[]", strings.Join(params.MediaUrls, ","))
  	}
  	if params.Subject != "" {
  		urlParams.Set("subject", params.Subject)
  	}
  	if params.Reference != "" {
  		urlParams.Set("reference", params.Reference)
  	}
  	if params.ScheduledDatetime.Unix() > 0 {
  		urlParams.Set("scheduledDatetime", params.ScheduledDatetime.Format(time.RFC3339))
  	}
  
  	return urlParams, nil
  }
docs: // paramsForMessage converts the specified Parmas struct to a url.Values
  // pointer and returns it.