Мне нужно преобразовать эту команду cURL в PHP, чтобы использовать ее на моем сайте в WordPress.
curl -X POST -F "[email protected]" -F "[email protected]" "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key={api-key}&version=2016-05-20"
Параметры объекта, который я использую:
{
"classifier_ids": [
"My_Model_ID",
"default"],
"owners": ["me"],
"threshold": 0.6
}
Это моя попытка:
<?php
//Here is the JSON Parameters Object
$arr = array('classifier_ids' => array('My_Model_ID', 'default'), 'owners' => array('me'), 'threshold' => 0.6);
//Here is the endpoint URL
$url = 'https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key=MY_KEY&version=2016-05-20';
// IMPORTANT - Image that is uploaded on my site
$filename = file_get_contents('@/wp-content/uploads/2018/03/raiox_img02.jpg');
$cfile = curl_file_create($filename,'image/jpeg');
//cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1); //POST
curl_setopt($ch, CURLOPT_FILE, $cFile); //Try pass image
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($arr)); //Try pass JSON
//Result
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Erro: ' . curl_error($ch); //Error
}
curl_close ($ch); //Finish
echo $result;
Это ошибка:
Warning: file_get_contents(@/wp-content/uploads/2018/03/raiox_img02.jpg): failed to open stream: No such file or directory in /srv/bindings/.. ../code/wp-content/plugins/insert-php-code-snippet/shortcode-handler.php(65) : eval()'d code on line 9 Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in /srv/bindings/.. ../code/wp-content/plugins/insert-php-code-snippet/shortcode-handler.php(65) : eval()'d code on line 18
Это JSON, который я получаю в ответ:
{
"error":
{
"code": 400,
"error_id": "input_error",
"description": "No images were specified."},
"images_processed": 0
}
Я хочу использовать свою пользовательскую модель IBM Watson Visual Recognition.
Я оставил комментарий, как именно я его использую, потому что с синтаксисом, который я использую, я не могу использовать изображение, которое мне нужно.
Использование WordPress
Версия: 9.4.4
Плагин: XYZ PHP код
Я использую следующие ссылки, чтобы вести меня:
Конвертировать командную строку cURL в PHP cURL
https://incarnate.github.io/curl-to-php/
https://gist.github.com/germanattanasio/ca22c0d47755d6f023f1
IBM Watson API визуального распознавания добавить проблему изображения в коллекцию с помощью curl
Помните, что я не устанавливаю какую-либо библиотеку или не использую Composer.
После нескольких попыток мне удалось заставить код работать, используя мою модель пользовательского классификатора IBM Watson Visual Recognition.
+ Изменить {your_api_key}
на ваши полномочия и {your_custom_model_ID}
на ваш собственный идентификатор модели.
Код:
<?php
// Code Date: March, 2018
// === Remember to see all documentation in IBM Watson ===
// Set the endpoint URL
$url = 'https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key={your_api_key}&version=2016-05-20';
// Set the image url
$image_url = '&url=http://completeURL.com/img.jpg';
// Set my custom classifier
$classifier = '&classifier_ids={your_custom_model_ID}';
// Set the Threshold, by default is 0.5 - To show all scores use Zero
$threshold = '&threshold=0';
//cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //Endpoint URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); //POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $image_url . $classifier . $threshold); //Parameters
// Execute the cURL command
$result = curl_exec($ch);
// Erro
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
}
// Close the command
curl_close ($ch);
// Show the JSON result
echo $result;
Особенно благодаря Самвел Алексанян к вашему вниманию.
Других решений пока нет …