/** * Creates a request and parses the result as url_encoded. This is used internally for the RequestToken and AccessToken requests. * * @param string $httpMethod * @param string $path * @param Token $token * @param array $requestOptions * @param array $params * @return array */ public function tokenRequest($httpMethod, $path, &$token = null, $requestOptions = array(), $params = array()) { $response = $this->request($httpMethod, $path, $token, $requestOptions, $params); $code = $response['status']['code']; if ($code >= 200 && $code <= 299) { //if ($response['status']['code'] == "200") {} if (substr($response['body'], 0, 4) == 'Fail') { throw new FailRequestException($response['body']); } $data = explode('&', $response['body']); OauthHelper::log($data); $result = array(); foreach ($data as $rec) { list($key, $value) = split('=', $rec); //$result[$key] = $value; $result[$key] = OauthHelper::unescape($value); } $response['status']['success'] = true; return $result; } elseif ($code >= 300 && $code <= 399) { $response['status']['success'] = false; } elseif ($code >= 400 && $code <= 499) { throw new UnauthorizedException($response); } else { $response['status']['success'] = false; } return false; }
/** * Unescape wrapper * * @param string $value * @return string */ public function unescape($value) { return OauthHelper::unescape(str_replace('+', '%2B', $value)); }