# @author: Simon Bowie # @purpose: Display images from OPS API image service # @acknowledgements: # OPS documented at https://www.epo.org/searching-for-patents/data/web-services/ops.html # OPS RESTful API specification at http://documents.epo.org/projects/babylon/eponet.nsf/0/F3ECDCC915C9BCD8C1258060003AA712/$File/ops_v3.2_documentation_-_version_1.3.16_en.pdf # OPS API functions list at https://developers.epo.org/ops-v3-2/apis include '../ops_api.php'; if(isset($_GET["doc_ref"])){ $access_token = get_access_token(); // OPS API credentials (details at http://documents.epo.org/projects/babylon/eponet.nsf/0/F3ECDCC915C9BCD8C1258060003AA712/$File/ops_v3.2_documentation_-_version_1.3.16_en.pdf) $ops_url = $_ENV["OPS_URL"] . 'rest-services/published-data/publication/epodoc/' . $document_reference . '/images'; // Set up API call $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $ops_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer $access_token")); // Give back curl result $response = curl_exec($ch); curl_close($ch); if (strpos($response,"No results found") === false ) { // Turn the API response into useful XML $xml = new SimpleXMLElement($response); // Retrieve image path from that XML $drawings_url = $_ENV["OPS_URL_IMAGES"] . '3.2/rest-services/' . $xml->xpath("///ops:document-instance[@desc='Drawing']/@link")[0][0]->__toString() . '?Range=1'; // Set up API call $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $drawings_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer $access_token")); // Give back curl result $response = curl_exec($ch); curl_close($ch); //Display the image in the browser header('Content-type: image/jpeg'); echo $response; } } ?>