public function makeOAuthCall(
		/*Token*/ $token, $url, $isPost = false, array $postFields = null
	) {
		// Figure out if there is a file in postFields
		$hasFile = false;
		if ( is_array( $postFields ) ) {
			foreach ( $postFields as $field ) {
				if ( is_a( $field, 'CurlFile' ) ) {
					$hasFile = true;
					break;
				}
			}
		}

		$params = [];
		// Get any params from the url
		if ( strpos( $url, '?' ) ) {
			$parsed = parse_url( $url );
			parse_str( $parsed['query'], $params );
		}
		$params += $this->extraParams;
		if ( $isPost && $postFields && !$hasFile ) {
			$params += $postFields;
		}
		$method = $isPost ? 'POST' : 'GET';
		$req = Request::fromConsumerAndToken(
			$this->config->consumer,
			$token,
			$method,
			$url,
			$params
		);
		$req->signRequest(
			new HmacSha1(),
			$this->config->consumer,
			$token
		);
		$this->lastNonce = $req->getParameter( 'oauth_nonce' );
		return $this->makeCurlCall(
			$url,
			$req->toHeader(),
			$isPost,
			$postFields,
			$hasFile
		);
	}