/** * Publishchannels eines Objektes ermitteln * (Hierfür müssen besondere Berechtigungen * bei ImmobilienScout24 beantragt werden.) * * @param array $aArgs * @return mixed */ private function _getPublish($aArgs) { $aRequired = array('username', 'realestate'); $oToken = null; $sSecret = null; if (!isset($aArgs['username'])) { $aArgs['username'] = $this->_sDefaultUsername; } list($oToken, $sSecret) = $this->getApplicationTokenAndSecret($aArgs['username']); if ($oToken === NULL || $sSecret === NULL) { return IMMOCASTER_SDK_LANG_APPLICATION_NOT_CERTIFIED; } $req = $this->doRequest('offer/v1.0/publish', $aArgs, $aRequired, __FUNCTION__, $oToken); $req->unset_parameter('username'); return parent::getContent($req, $sSecret); }
/** * Applikation Accesstoken ermitteln * und in Datenbank speichern (3-legged-oauth). * * @param array $aArgs * @return void */ private function registerAccess($aArgs) { try { if (Immocaster_Data_Mysql::getInstance()->getApplicationToken()) { return false; } $oToken = Immocaster_Data_Mysql::getInstance()->getRequestToken(Immocaster_Data_Session::getInstance()->getVar('request_token')); $token = new OAuthToken($oToken->ic_key, $oToken->ic_secret); $req = parent::restRequest('oauth/access_token', array(), true); $req->set_parameter('oauth_verifier', $_GET['oauth_verifier']); $req->set_parameter('oauth_token', $oToken->ic_key); $req->set_parameter('oauth_signature_method', "HMAC-SHA1"); $req->sign_request($this->_oSignatureMethod, $this->_oConsumer, $token); $sConsKey = rawurlencode($this->_sConsumerSecret) . '&' . $oToken->ic_secret; $sSignature = urlencode(base64_encode(hash_hmac('sha1', $req->get_signature_base_string(), $sConsKey, true))); $authHeader = $req->to_header(); $opts = array('http' => array('header' => $authHeader . ',oauth_signature_method="HMAC-SHA1",oauth_signature="' . $sSignature . '"' . "\r\n" . 'User-Agent: ' . IMMOCASTER_USER_AGENT)); @($result = file_get_contents($this->_sUri . '/restapi/security/oauth/access_token', false, stream_context_create($opts))); if (!$result) { $this->registerRequest($aArgs); return false; } $aAccessToken = Immocaster_Tools_Helper::makeArrayFromString($result); if (Immocaster_Data_Mysql::getInstance()->saveApplicationToken($aAccessToken['oauth_token'], $aAccessToken['oauth_token_secret'])) { return true; } } catch (Exception $e) { echo $e->getMessage(); } return false; }