/** * Datenspeicherung Datenbank * initialisieren (für 3-legged-oauth). * * @var array Parameters für die Datenbank (type,host,user,password,database) * @var string Namespace für Variablen innerhalb der Session * @var string Alternativer Name für den Tabellennamen * @var boolean Für die Zertifizierung wird eine Session benötigt, das automatische laden der Session kann aber per false deaktiviert werden. * @return boolean */ public function setDataStorage($aConnection, $sSessionNamespace = null, $sTableName = null, $bSession = true) { if ($bSession === true) { require_once dirname(__FILE__) . '/Data/Session.php'; Immocaster_Data_Session::getInstance($sSessionNamespace); } $sFileName = ucfirst(strtolower($aConnection[0])); require_once dirname(__FILE__) . '/Data/' . $sFileName . '.php'; return call_user_func(array('Immocaster_Data_' . $sFileName, 'getInstance'), $aConnection, $sTableName); }
/** * 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; }