public function get_access_tokens($scope = array()) { if (!empty($_GET['oauth_verifier']) && !empty($_GET['oauth_token']) && isset($_SESSION['oauth_token_secret'])) { parent::$oauth_settings['oauth_token_secret'] = $_SESSION['oauth_token_secret']; unset($_SESSION['oauth_token_secret']); $oauth_fields['oauth_verifier'] = $_GET['oauth_verifier']; $oauth_fields['oauth_token'] = $_GET['oauth_token']; $url = 'https://secure.' . self::$url_part . '.co.nz/Oauth/AccessToken'; $method = 'POST'; parent::build_request($url, $method, $oauth_fields); $res = parent::do_request($url, $method); parse_str($res[0], $res[0]); if (!isset($res[0]['oauth_token']) || !isset($res[0]['oauth_token_secret'])) { switch ($res[1]['http_code']) { case self::TM_ERROR_REQUEST: $this->last_error = self::TM_ERROR_REQUEST; break; case self::TM_ERROR_AUTHENTICATION: $this->last_error = self::TM_ERROR_AUTHENTICATION; break; case self::TM_ERROR_RATE_LIMIT: $this->last_error = self::TM_ERROR_RATE_LIMIT; break; case self::TM_ERROR_GENERIC: $this->last_error = self::TM_ERROR_GENERIC; break; } return $res; } parent::$oauth_settings = array_merge(parent::$oauth_settings, array('oauth_token' => $res[0]['oauth_token'], 'oauth_token_secret' => $res[0]['oauth_token_secret'])); return $res; } $scope_str = implode($scope, ','); $oauth_fields = array('oauth_callback' => self::$callback_url, 'scope' => $scope_str); $url = 'https://secure.' . self::$url_part . '.co.nz/Oauth/RequestToken'; $method = 'POST'; parent::build_request($url, $method, $oauth_fields, array('scope')); $url .= '?scope=' . $oauth_fields['scope']; $res = parent::do_request($url, $method); parse_str($res[0], $res[0]); if (!isset($res[0]['oauth_token']) || !isset($res[0]['oauth_token_secret'])) { switch ($res[1]['http_code']) { case self::TM_ERROR_REQUEST: $this->last_error = self::TM_ERROR_REQUEST; break; case self::TM_ERROR_AUTHENTICATION: $this->last_error = self::TM_ERROR_AUTHENTICATION; break; case self::TM_ERROR_RATE_LIMIT: $this->last_error = self::TM_ERROR_RATE_LIMIT; break; case self::TM_ERROR_GENERIC: $this->last_error = self::TM_ERROR_GENERIC; break; } return $res; } // store token secret $_SESSION['oauth_token_secret'] = $res[0]['oauth_token_secret']; // redirect to trademe to get client access token header('Location: https://secure.' . self::$url_part . '.co.nz/Oauth/Authorize?oauth_token=' . $res[0]['oauth_token']); exit; }