code: func (o *OAuthSession) Submit(ns *NewSubmission) (*Submission, error) {
  
  	// Build form for POST request.
  	v := url.Values{
  		"title":       {ns.Title},
  		"url":         {ns.Content},
  		"text":        {ns.Content},
  		"sr":          {ns.Subreddit},
  		"sendreplies": {strconv.FormatBool(ns.SendReplies)},
  		"resubmit":    {strconv.FormatBool(ns.Resubmit)},
  		"api_type":    {"json"},
  		// TODO implement captchas for OAuth types
  		//"captcha":     {ns.Captcha.Response},
  		//"iden":        {ns.Captcha.Iden},
  	}
  	if ns.Self {
  		v.Add("kind", "self")
  	} else {
  		v.Add("kind", "link")
  	}
  
  	type submission struct {
  		Json struct {
  			Errors [][]string
  			Data   Submission
  		}
  	}
  	submit := &submission{}
  
  	err := o.postBody("https://oauth.reddit.com/api/submit", v, submit)
  	if err != nil {
  		return nil, err
  	}
  	// TODO check s.Errors and do something useful?
  	return &submit.Json.Data, nil
  }
docs: // Submit accepts a NewSubmission type and submits a new link using OAuth.
  // Returns a Submission type.