code: func (octx OAuthContext) do(method string, url string, form url.Values) (*http.Response, error) {
  	if octx.Creds == nil {
  		return nil, errors.New("no OAuth credentials. Not logged in?")
  	}
  	if octx.Client == nil {
  		return nil, errors.New("no OAuth client")
  	}
  	var (
  		res *http.Response
  		err error
  	)
  	if method == http.MethodPost {
  		res, err = octx.Client.Post(ctxutil.Client(octx.Ctx), octx.Creds, url, form)
  	} else {
  		res, err = octx.Client.Get(ctxutil.Client(octx.Ctx), octx.Creds, url, form)
  	}
  	if err != nil {
  		return nil, fmt.Errorf("error fetching %s: %v", url, err)
  	}
  	if res.StatusCode != http.StatusOK {
  		return res, fmt.Errorf("%s request on %s failed with: %s", method, url, res.Status)
  	}
  	return res, nil
  }
docs: // Do sends through octx the request defined by url and the values in form.