# OPS API variables | # OPS API variables | ||||
# Hostname for OPS API, usually https://ops.epo.org | # Hostname for OPS API, usually https://ops.epo.org | ||||
OPS_URL= | OPS_URL= | ||||
# Hostname for OPS API for images, for some reason different to above | |||||
OPS_URL_IMAGES= | |||||
# API credentials from OPS https://developers.epo.org/ | # API credentials from OPS https://developers.epo.org/ | ||||
CONSUMER_KEY= | CONSUMER_KEY= | ||||
CONSUMER_SECRET= | CONSUMER_SECRET= |
$access_token = get_access_token(); | $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 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 . '/biblio'; | |||||
$ops_url = $_ENV["OPS_URL"] . 'rest-services/published-data/publication/epodoc/' . $document_reference . '/biblio,full-cycle'; | |||||
// Set up API call | // Set up API call | ||||
$ch = curl_init(); | $ch = curl_init(); | ||||
curl_close($ch); | curl_close($ch); | ||||
if (strpos($response,"No results found") === false ) { | if (strpos($response,"No results found") === false ) { | ||||
$xml = new SimpleXMLElement($response); | |||||
print_r($response); | print_r($response); | ||||
} | } | ||||
} | } | ||||
function get_images($document_reference) { | |||||
$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; | |||||
} | |||||
} | |||||
?> | ?> |
<br><br> | <br><br> | ||||
<?php | |||||
if ($random_record['abstract']): | |||||
?> | |||||
Abstract: | Abstract: | ||||
<?php | <?php | ||||
<br><br> | <br><br> | ||||
<? | |||||
endif; | |||||
?> | |||||
<?php | <?php | ||||
if (get_publication_details($random_record['doc_ref'])): | if (get_publication_details($random_record['doc_ref'])): | ||||
<?php | <?php | ||||
endif; | endif; | ||||
?> | ?> | ||||
<?php | |||||
//if (get_images($random_record['doc_ref'])): | |||||
?> | |||||
<!-- TO DO: RESOLVE WHY NGINX DOESN'T DISPLAY ANY OTHER PAGES IN THE PUBLIC DIRECTORY INCLUDING THESE TWO--> | |||||
<a href="./ops_image.php?doc_ref=<?php echo $random_record['doc_ref'] ?>">Click here for image</a> | |||||
<a href="./test.php">click</a> | |||||
<br><br> | |||||
<?php | |||||
//endif; | |||||
?> |
<?php | |||||
# @name: ops_image.php | |||||
# @version: 0.1 | |||||
# @creation_date: 2021-09-24 | |||||
# @license: The MIT License <https://opensource.org/licenses/MIT> | |||||
# @author: Simon Bowie <ad7588@coventry.ac.uk> | |||||
# @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; | |||||
} | |||||
} | |||||
?> |