Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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;
 }