/** * Sends the actual request to obtain a request token. * * @return array('http_code' => HTTP response code (200, 404, 401, etc), 'data' => the html document) */ protected function requestRequestToken($callbackUrl) { global $apiConfig; $requestTokenRequest = apiClientOAuthRequest::from_consumer_and_token($this->consumerToken, NULL, "GET", $this->service['request_token_url'], array()); $requestTokenRequest->set_parameter('scope', $this->service['scope']); $requestTokenRequest->set_parameter('oauth_callback', $callbackUrl); $requestTokenRequest->sign_request($this->signatureMethod, $this->consumerToken, NULL); $request = $this->io->makeRequest(new apiHttpRequest($requestTokenRequest)); if ($request->getResponseHttpCode() != 200) { throw new apiAuthException("Couldn't fetch request token, http code: " . $request->getResponseHttpCode() . ', response body: ' . $request->getResponseBody()); } return $request->getResponseBody(); }