code: private function oAuthRequest($url, $method, array $parameters, $json = false)
      {
          $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters, $json);
          if (array_key_exists('oauth_callback', $parameters)) {
              // Twitter doesn't like oauth_callback as a parameter.
              unset($parameters['oauth_callback']);
          }
          if ($this->bearer === null) {
              $request->signRequest($this->signatureMethod, $this->consumer, $this->token);
              $authorization = $request->toHeader();
              if (array_key_exists('oauth_verifier', $parameters)) {
                  // Twitter doesn't always work with oauth in the body and in the header
                  // and it's already included in the $authorization header
                  unset($parameters['oauth_verifier']);
              }
          } else {
              $authorization = 'Authorization: Bearer ' . $this->bearer;
          }
          return $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters, $json);
      }
docs: Format and sign an OAuth / API request
  
  @param string $url
  @param string $method
  @param array  $parameters
  @param bool   $json
  
  @return string
  @throws TwitterOAuthException