public static function callApi($url, $auth_token, $method = 'POST', $data = null)
 {
     $headers = array("Accept: application/json", "Content-Type: application/json");
     if ($auth_token) {
         $headers[] = "Authorization: OAuth oauth_token={$auth_token}";
     }
     $json_data = false;
     if (is_array($data)) {
         $json_data = json_encode($data);
         $headers[] = "Content-Length: " . strlen($json_data);
     }
     $request = HttpRequest::request($url, $method, $json_data, $headers);
     if ($request) {
         $results = json_decode($request);
         if (isset($results->int_err_code)) {
             throw new \ErrorException('There was an error returned from the API: ' . $results->msg . ' (' . $results->int_err_code . ')', 160);
         } elseif (isset($results->err)) {
             throw new \ErrorException('There was an error returned from the API: ' . $results->message . ' (' . $results->err . ')', 160);
         } else {
             return $results;
         }
     } else {
         $error = "API call returned an HTTP status code of " . curl_errno($ch);
         throw new \ErrorException($error, 107);
     }
 }
 public static function callApi($baseUrl, $queryParams, $command, $salt, $method = 'GET', $data = null, $returnUrl = false)
 {
     $queryString = '';
     if (is_array($queryParams)) {
         $first = true;
         foreach ($queryParams as $name => $value) {
             if ($first) {
                 $first = false;
             } else {
                 $queryString .= '&';
             }
             $queryString .= $name . '=' . urlencode($value);
         }
     }
     $checksum = sha1($command . $queryString . $salt);
     $url = $baseUrl . $command . '/?' . $queryString . '&checksum=' . $checksum;
     if ($returnUrl) {
         return $url;
     }
     $request = HttpRequest::request($url, $method);
     if ($request) {
         $xml = new \SimpleXMLElement($request);
         if ($xml) {
             if ($xml->returncode == 'SUCCESS') {
                 return $xml;
             } else {
                 throw new \ErrorException('An API error occured (' . $xml->messageKey . ') ' . $xml->message);
             }
         }
     } else {
         $error = "API call returned an HTTP status code of " . curl_errno($ch);
         throw new \ErrorException($error, 107);
     }
 }
 /**
  * Performs API call to WebEx XML API
  * 
  * @param String|SimpleXMLElement $xml Either the full XML to be sent or a SimpleXMLElement object
  * @return SimpleXMLElement The bodyContent section of successful API response
  * @throws ErrorException when the API call fails or it is unable to parse response.
  */
 public static function callApi($xml, $sitename)
 {
     if (is_object($xml)) {
         $xml = $xml->asXML();
     }
     $apiUrl = "https://{$sitename}.webex.com/WBXService/XMLService";
     $body = HttpRequest::request($apiUrl, 'POST', $xml);
     if ($body) {
         /*
          * Clear out unnecessary namespaces from returned XML
          */
         $body = preg_replace('/<[a-z]{1,}:/', '<', $body);
         $body = preg_replace('/<\\/[a-z]{1,}:/', '</', $body);
         libxml_use_internal_errors(true);
         $results = new \SimpleXMLElement($body);
         if ($results) {
             if ($results->header->response->result == 'SUCCESS') {
                 return $results->body->bodyContent;
             } else {
                 $error = "An error was returned from the API: " . $results->header->response->reason->__toString() . ' (' . $results->header->response->exceptionID->__toString() . ')';
                 throw new \ErrorException($error, 108);
             }
         } else {
             $errors = '';
             foreach (libxml_get_errors() as $error) {
                 $errors .= ",\t" . $error->message;
             }
             $error = "Unable to parse XML response, errors occured: {$errors}";
             throw new \ErrorException($error, 106);
         }
     } else {
         $error = "API call returned an HTTP status code of " . curl_errno($ch);
         throw new \ErrorException($error, 107);
     }
 }
 public static function callApi($url)
 {
     $request = HttpRequest::request($url);
     $success = preg_match('/^OK\\n(.*)/ms', $request, $success_matches);
     if ($success) {
         return $success_matches[1];
     } else {
         $error = preg_match('/^ERROR: (\\d+); (.*)$/', $request, $matches);
         if ($error) {
             throw new \ErrorException($matches[2], $matches[1]);
         } else {
             throw new \ErrorException('An API Error Occured: ' . $request, '300');
         }
     }
 }