= 5.0 * * @author Thomas Nicolai (thomas.nicolai@sociomantic.com) * @author Lars Kirchhoff (lars.kirchhoff@sociomantic.com) * * @see http://wiki.zanox.com/en/Web_Services * @see http://apps.zanox.com * * @package ApiClient * @version 2009-09-01 * @copyright Copyright (c) 2007-2009 zanox.de AG */ class RestfulMethods extends ApiMethods implements IMethods { /** * Get a single product. * * @param string $zupId product id hash * @param int $adspaceId adspace id (optional) * * @access public * @category nosignature * * @return object or string single product item or false */ public function getProduct( $zupId, $adspaceId = NULL ) { $resource = array('products', 'product', $zupId); $parameter['adspace'] = $adspaceId; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get product categories. * * @param int $rootCategory category id (optional) * @param bool $includeChilds include child nodes (optional) * * @access public * @category nosignature * * @return object or string single product item or false */ public function getProductCategories( $rootCategory = 0, $includeChilds = false ) { $resource = array('products', 'categories'); $parameter['parent'] = $rootCategory; $parameter['includeChilds'] = $includeChilds; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get products by advertiser program. * * @param int $programId advertiser program id * @param int $adspaceId adspace id (optional) * @param string $modifiedDate last modification date (optional) * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category nosignature * * @return object or string product result set or false */ public function getProducts( $programId, $adspaceId = NULL, $modifiedDate = NULL, $page = 0, $items = 10 ) { $resource = array('products', 'program', $programId); $parameter['adspace'] = $adspaceId; $parameter['modified'] = $modifiedDate; $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Search for products. * * @param string $query search string * @param string $searchType search type (optional) * (contextual or phrase) * @param string $ip products with sales region * within the region of the ip * address (optional) * @param string $region limit search to region (optional) * @param int $categoryId limit search to categorys (optional) * @param array $programId limit search to program list of * programs (optional) * @param boolean $hasImages products with images (optional) * @param float $minPrice minimum price (optional) * @param float $maxPrice maximum price (optional) * @param int $adspaceId adspace id (optional) * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category nosignature * * @return object or string list of products or false */ public function searchProducts( $query, $searchType = 'phrase', $ip = NULL, $region = NULL, $categoryId = NULL, $programId = array(), $hasImages = true, $minPrice = 0, $maxPrice = NULL, $adspaceId = NULL, $page = 0, $items = 10 ) { $resource = array('products'); $parameter['q'] = $query; $parameter['searchType'] = $searchType; $parameter['ip'] = $ip; $parameter['region'] = $region; $parameter['category'] = $categoryId; $parameter['programs'] = implode(",", $programId); $parameter['hasImages'] = $hasImages; $parameter['minPrice'] = $minPrice; $parameter['maxPrice'] = $maxPrice; $parameter['adspace'] = $adspaceId; $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Retrieve a single zanox advertiser program item. * * @param int $programId id of program to retrieve * * @access public * @category nosignature * * @return object or string program item or false */ public function getProgram ( $program_id ) { $resource = array('programs', 'program', $program_id); $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get advertiser program categories. * * @access public * @category nosignature * * @return object or string category result set or false */ public function getProgramCategories() { $resource = array('programs', 'categories'); $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get advertiser program applications by adspace. * * @param int $adspaceId advertising space id * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string program result set or false */ public function getProgramsByAdspace( $adspaceId, $page = 0, $items = 10 ) { $resource = array('programs', 'adspace', $adspaceId); $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Search zanox advertiser programs. * * @param string $query search string * @param string $startDate program start date (optional) * @param string $partnerShip partnership status (optional) * (direct or indirect) * @param boolean $hasProducts program has product data * @param string $ip programs in region of ip address * @param string $region program region * @param string $categoryId program category id * @param int $page page of result set * @param int $items items per page * * @access public * @category nosignature * * @return object or string programs result set or false */ public function searchPrograms( $query, $startDate = NULL, $partnerShip = NULL, $hasProducts = false, $ip = NULL, $region = NULL, $categoryId = NULL, $page = 0, $items = 10 ) { $resource = array('programs'); $parameter['q'] = $query; $parameter['startDate'] = $startDate; $parameter['partnerShip'] = $partnerShip; $parameter['hasProducts'] = $hasProducts; $parameter['ip'] = $ip; $parameter['region'] = $region; $parameter['category'] = $categoryId; $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Create program application for a given adspace. * * @param int $programId advertiser program id * @param int $adspaceId advertising space id * * @access public * @category signature * * @return boolean true or false */ public function createProgramApplication( $programId, $adspaceId ) { $resource = array('programs', 'program', $programId, 'adspace', $adspaceId); $this->setRestfulAction(POST); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Delete program application. * * @param int $programId advertiser program id * @param int $adspaceId advertising space id * * @access public * @category signature * * @return boolean true or false */ public function deleteProgramApplication ( $programId, $adspaceId ) { $resource = array('programs', 'program', $programId, 'adspace', $adspaceId); $this->setRestfulAction(DELETE); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get a single admedium. * * @param int $admediumId advertising medium id * @param int $adspaceId advertising space id (optional) * * @access public * @category nosignature * * @return object or string single product item or false */ public function getAdmedium( $admediumId, $adspaceId = NULL ) { $resource = array('admedia', 'admedium', $admediumId); $parameter['adspace'] = $adspaceId; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get admedium categories. * * @param int $programId program admedium categories * * @access public * @category nosignature * * @return object or string list of admedium categories */ public function GetAdmediumCategories( $programId ) { $resource = array('admedia', 'categories', 'program', $programId); $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Retrieve all advertising media items. * * Note: The admedium categories are specific to each advertiser program. * * Supported admedium types are * * 801: Text * 802: Image * 803: Image with text * 804: HTML (may also include Flash) * 805: Script (may also include Flash) * * @param int $programId advertiser program id (optional) * @param string $ip ip address (geo feature) (optional) * @param string $region limit search to region (optional) * @param string $format admedia format (optional) * @param string $partnerShip partnership status (optional) * (direct or indirect) * @param string $purpose purpose of admedia (optional) * (startPage, productDeeplink, * categoryDeeplink, searchDeeplink) * @param string $admediumType type of admedium (optional) * (html, script, lookatMedia, image, * imageText, text) * @param int $categoryId admedium category id (optional) * @param int $adspaceId adspace id (optional) * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category nosignature * * @return object or string admedia result set or false */ public function getAdmedia( $programId = NULL, $ip = NULL, $region = NULL, $format = NULL, $partnerShip = NULL, $purpose = NULL, $admediumType = NULL, $categoryId = NULL, $adspaceId = NULL, $page = 0, $items = 10 ) { $resource = array('admedia'); $parameter['program'] = $programId; $parameter['ip'] = $ip; $parameter['region'] = $region; $parameter['format'] = $format; $parameter['partnerShip'] = $partnerShip; $parameter['purpose'] = $purpose; $parameter['admediumType'] = $admediumType; $parameter['category'] = $categoryId; $parameter['adspace'] = $adspaceId; $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(false); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Returns a single advertising spaces. * * @param int $adspaceId advertising space id * * @access public * @category signature * * @return object or string adspace item or false */ public function getAdspace( $adspaceId ) { $resource = array('adspaces', 'adspace', $adspaceId); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Returns all advertising spaces. * * @param int $page result set page (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string adspaces result set or false */ public function getAdspaces ( $page = 0, $items = 10 ) { $resource = array('adspaces'); $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Create advertising space (signature). * * --- * * Usage example: * * * $api = ZanoxAPI::factory(PROTOCOL_XML); * * $name = "example"; * $lang = "en"; * $url = "http://www.example.org"; * $contact = "webmaster@example.org"; * $description = "example demonstrates how to use the api"; * $adspaceType = "website"; * $scope = "private"; * $visitors = 1; * $impressions = 1; * $keywords = "keyword1, keyword2, keyword3"; * $regions['region'] = array("DE", "US"); * $categories['category'] = array('1', '2'); * * $result = $api->createAdspace($name, $lang, $url, $contact, * $description, $adspaceType, $scope, $visitors, $impressions, * $keywords, $regions, $categories); * * * * --- * * @param string $name adspace name * @param string $lang language of adspace (e.g. en) * @param string $url url of adspace * @param string $contact contact address (email) * @param string $description description of adspace * @param string $adspaceType adspace typ (website, email or searchengine) * @param array $scope adspace scope (private or business) * @param int $visitors adspace monthly visitors * @param int $impressions adspace monthly page impressions * @param string $keywords keywords for adspace (optional) * @param array $regions adspace customer regions (optional) * @param array $categories adspace categories (optional) * * @access public * @category signature * * @return object or string adspace item or false */ public function createAdspace ( $name, $lang, $url, $contact, $description, $adspaceType, $scope, $visitors, $impressions, $keywords = NULL, $regions = array(), $categories = array() ) { $resource = array('adspaces', 'adspace'); $adspaceItem['name'] = $name; $adspaceItem['url'] = $url; $adspaceItem['contact'] = $contact; $adspaceItem['description'] = $description; $adspaceItem['adspaceType'] = $adspaceType; $adspaceItem['scope'] = $scope; $adspaceItem['visitors'] = $visitors; $adspaceItem['impressions'] = $impressions; $adspaceItem['keywords'] = $keywords; $adspaceItem['regions'] = $regions; $adspaceItem['categories'] = $categories; $attributes['lang'] = $lang; $body = $this->serialize('adspaceItem', $adspaceItem, $attributes); $this->setRestfulAction(POST); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, false, $body); if ( $result ) { return $result; } return false; } /** * Update advertising space. * * --- * * Usage example: * * * $api = ZanoxAPI::factory(PROTOCOL_XML); * * $id = 234324; * $name = "example"; * $lang = "en"; * $url = "http://www.example.org"; * $contact = "webmaster@example.org"; * $description = "example demonstrates how to use the api"; * $adspaceType = "website"; * $scope = "private"; * $visitors = 1; * $impressions = 1; * $keywords = "keyword1, keyword2, keyword3"; * $regions['region'] = array("DE", "US"); * $categories['category'] = array('1', '2'); * * $result = $api->createAdspace($id, $name, $lang, $url, $contact, * $description, $adspaceType, $scope, $visitors, $impressions, * $keywords, $regions, $categories); * * * * --- * * @param int $adspaceId adspace id * @param string $name adspace name * @param string $lang language of adspace (e.g. en) * @param string $url url of adspace * @param string $contact contact address (email) * @param string $description description of adspace * @param string $adspaceType adspace typ (website, email or searchengine) * @param array $scope adspace scope (private or business) * @param int $visitors adspace monthly visitors * @param int $impressions adspace monthly page impressions * @param string $keywords keywords for adspace (optional) * @param array $regions adspace customer regions (optional) * @param array $categories adspace categories (optional) * * @access public * @category signature * * @return object or string adspace item or false */ public function updateAdspace ( $adspaceId, $name, $lang, $url, $contact, $description, $adspaceType, $scope, $visitors, $impressions, $keywords = NULL, $regions = array(), $categories = array() ) { $resource = array('adspaces', 'adspace', $adspaceId); $adspaceItem['name'] = $name; $adspaceItem['url'] = $url; $adspaceItem['contact'] = $contact; $adspaceItem['description'] = $description; $adspaceItem['adspaceType'] = $adspaceType; $adspaceItem['scope'] = $scope; $adspaceItem['visitors'] = $visitors; $adspaceItem['impressions'] = $impressions; $adspaceItem['keywords'] = $keywords; $adspaceItem['regions'] = $regions; $adspaceItem['categories'] = $categories; $attributes['lang'] = $lang; $attributes['id'] = $adspaceId; $body = $this->serialize('adspaceItem', $adspaceItem, $attributes); $this->setRestfulAction(PUT); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, false, $body); if ( $result ) { return $result; } return false; } /** * Removes advertising space. * * @param int $adspaceId advertising space id * * @access public * @category signature * * @return boolean true on success */ public function deleteAdspace( $adspaceId ) { $resource = array('adspaces', 'adspace', $adspaceId); $this->setRestfulAction(DELETE); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Return zanox user profile. * * @access public * @category signature * * @return object or string profile item */ public function getProfile() { $resource = array('profiles'); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Update zanox user profile. * * @param array $profileId user profile id * @param array $firstName first name * @param array $lastName last name * @param array $email email address * @param array $country country or residence * @param array $street1 street 1 * @param array $street2 street 2 (optional) * @param array $city city * @param array $company name of company (optional) * @param array $phone phone number (optional) * @param array $mobile mobile number (optional) * @param array $fax fax number (optional) * * @access public * @category signature * * @return boolean true on success */ public function updateProfile( $profileId, $firstName, $lastName, $email, $country, $street1, $street2 = NULL, $city, $zipcode, $company = NULL, $phone = NULL, $mobile = NULL, $fax = NULL ) { $resource = array('profiles'); $profileItem['firstName'] = $firstName; $profileItem['lastName'] = $lastName; $profileItem['email'] = $email; $profileItem['country'] = $country; $profileItem['street1'] = $street1; $profileItem['street2'] = $street2; $profileItem['city'] = $city; $profileItem['zipcode'] = $zipcode; $profileItem['company'] = $company; $profileItem['phone'] = $phone; $profileItem['mobile'] = $mobile; $profileItem['fax'] = $fax; $attributes['id'] = $profileId; $body = $this->serialize('profileItem', $profileItem, $attributes); $this->setRestfulAction(PUT); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, false, $body); if ( $result ) { return $result; } return false; } /** * Get back accounts. * * @param int $page result set page (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string account balances result set or * false */ public function getBankAccounts( $page = 0, $items = 10 ) { $resource = array('payments', 'bankaccounts'); $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get single back account. * * @param int $bankAccountId result set page * * @access public * @category signature * * @return object or string account balances result set or * false */ public function getBankAccount( $bankAccountId ) { $resource = array('payments', 'bankaccounts', 'bankaccount', $bankAccountId); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get account balance * * @param int $currency currence code of balance account * * @access public * @category signature * * @return object or string payment item or false */ public function getBalance( $currency ) { $resource = array('payments', 'balances', 'balance', $currency); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get currency account balances. * * @param int $page result set page (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string account balances result set or * false */ public function getBalances( $page = 0, $items = 10 ) { $resource = array('payments', 'balances'); $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get payment transactions of the current zanox account. * * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string payments result set or false */ public function getPayments( $page = 0, $items = 10 ) { $resource = array('payments'); $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get a single payment item. * * @param int $paymentId payment item id * * @access public * @category signature * * @return object or string payment item or false */ public function getPayment( $paymentId ) { $resource = array('payments', 'payment', $paymentId); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get basic sales/leads report. * * @param string $fromDate report start date * @param string $toDate report end date * @param string $dateType type of date to filter by (optional) * (clickDate, trackingDate, * modifiedDate) * @param string $currency currency (optional) * @param int $programId program id (optional) * @param int $admediumId admedium id (optional) * @param int $admediumFormat admedium format id (optional) * @param int $adspaceId adspace id (optional) * @param string $reviewState filter by review status (optional) * (confirmed, open, rejected or * approved) * @param string $groupBy group report by option (optional) * (country, region, city, currency, * admedium, program, adspace, * linkFormat, reviewState, * trackingCategory, month, day, * hour, year, dayOfWeek) * * @access public * @category signature * * @return object or string payment item or false */ public function getReportBasic( $fromDate, $toDate, $dateType = NULL, $currency = NULL, $programId = NULL, $admediumId = NULL, $admediumFormat = NULL, $adspaceId = NULL, $reviewState = NULL, $groupBy = NULL ) { $resource = array('reports', 'basic'); $parameter['fromDate'] = $fromDate; $parameter['toDate'] = $toDate; $parameter['dateType'] = $dateType; $parameter['currency'] = $currency; $parameter['program'] = $programId; $parameter['admedium'] = $admediumId; $parameter['admediumFormat'] = $admediumFormat; $parameter['adspace'] = $adspaceId; $parameter['state'] = $reviewState; $parameter['groupBy'] = $groupBy; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get sales report. * * --- * * Sample usage: * * * $zx = ZanoxAPI::factory(PROTOCOL_XML); * * $zx->getSales('2009-09-01'); * * * * --- * * @param string $date date of sales * @param string $dateType type of date to filter by (optional) * (clickDate, trackingDate, * modifiedDate) * @param int $programId filter by program id (optional) * @param int $adspaceId filter by adspace id (optional) * @param array $reviewState filter by review status (optional) * (confirmed, open, rejected or * approved) * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string sales result set or false */ public function getSales ( $date, $dateType = NULL, $programId = NULL, $adspaceId = NULL, $reviewState = NULL, $page = 0, $items = 10 ) { $resource = array('reports', 'sales', 'date', $date); $parameter['dateType'] = $dateType; $parameter['program'] = $programId; $parameter['adspace'] = $adspaceId; $parameter['state'] = $reviewState; $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get single sale item. * * @param int $saleId sale id * * @access public * @category signature * * @return object or string sales result set or false */ public function getSale ( $saleId ) { $resource = array('reports', 'sales', 'sale', $saleId); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Get leads report. * * --- * * Sample usage: * * * $zx = ZanoxAPI::factory(PROTOCOL_XML); * * $zx->getLeads('2009-09-01'); * * * * --- * * @param string $date date of sales * @param string $dateType type of date to filter by (optional) * (clickDate, trackingDate, * modifiedDate) * @param int $programId filter by program id (optional) * @param int $adspaceId filter by adspace id (optional) * @param array $reviewState filter by review status (optional) * (confirmed, open, rejected or * approved) * @param int $page page of result set (optional) * @param int $items items per page (optional) * * @access public * @category signature * * @return object or string sales result set or false */ public function getLeads ( $date, $dateType = NULL, $programId = NULL, $adspaceId = NULL, $reviewState = NULL, $page = 0, $items = 10 ) { $resource = array('reports', 'leads', 'date', $date); $parameter['dateType'] = $dateType; $parameter['program'] = $programId; $parameter['adspace'] = $adspaceId; $parameter['state'] = $reviewState; $parameter['page'] = $page; $parameter['items'] = $items; $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource, $parameter); if ( $result ) { return $result; } return false; } /** * Get single sale item. * * @param int $leadId lead id * * @access public * @category signature * * @return object or string sales result set or false */ public function getLead ( $leadId ) { $resource = array('reports', 'leads', 'lead', $leadId); $this->setRestfulAction(GET); $this->setSecureApiCall(true); $result = $this->doRestfulRequest($resource); if ( $result ) { return $result; } return false; } /** * Returns new OAuth user session * * @param string $authToken authentication token * * @access public * * @return object user session */ public function getSession ( $authToken ) { throw new ApiClientException("Restful API Interface doesn't support getSession()! Please use the SOAP Interface."); } /** * Closes OAuth user session * * @access public * * @param string $connectId connect ID * * @return bool returns true on success * * @annotation(secure => true, paging = false) */ public function closeSession ( $connectId ) { throw new ApiClientException("Restful API Interface doesn't support closeSession()! Please use the SOAP Interface."); } /** * Get zanox User Interface Url * * @param string $connectId connect ID * @param string $sessionKey session key * * @access public * @category signature * * @return bool returns true on success */ public function getUiUrl( $connectId, $sessionKey ) { throw new ApiClientException("Restful API Interface doesn't support getUiUrl()! Please use the SOAP Interface."); } } ?>