Watson Concept Expansion Service

Я пытаюсь использовать сервис расширения концепции Watson в php.
Я использую следующий код для загрузки списка

 <?php
header('Content-type: application/json');

$services_json = json_decode(getenv('VCAP_SERVICES'), true);
$cred = $services_json["concept_expansion"][0]["credentials"];
// credentials
$username = $cred["username"];
$password = $cred["password"];
$url = $cred["url"] . '/v1/upload';
$auth = base64_encode($username . ":" . $password);

try {
//List of terms to seed the concept expansion.
$temp  = array('seeds' => array('motrin','aspirin','keflex' ) );
$data = array(
'seeds' => $temp,
'dataset' => 'mtsamples',
'label' => 'drugs'   // label for the seeds
);
$data_string = json_encode($data);
$curl = curl_init();

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'X-synctimeout: 30',
'Authorization: Basic ' . $auth)
);

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
} catch(Exception $e) {
echo $e->getMessage();
}
?>

Но код дает ошибку 400. Есть что-то, что я пропускаю?

3

Решение

Я не знаю php, но похоже, что вы пытаетесь выполнить команду curl, поэтому я дам вам команду curl 🙂

curl -X POST \
-u username:password \
-d "{\"dataset\": \"mtsamples\", \"seeds\": [\"motrin\", \"tylenol\", \"aspirin\"], \"label\": \"Test\"}" \
https://gateway.watsonplatform.net/concept-expansion-beta/api/v1/upload

замена username а также password вы получите что-то вроде:

{ "jobid": "R0xJTVBTRVJVTi4xMjA3MDEzMTM2MTk1OTk3OTgyM18xOzgyNjM4Mjg=" }

Не нужно указывать Content-Type или же X-Synctimeout,


Обновление 11 июня: Я обновил ответ с помощью кода PHP curl

<?php
header('Content-type: application/json');

$services_json = json_decode(getenv('VCAP_SERVICES'), true);
$cred = $services_json["concept_expansion"][0]["credentials"];
// credentials
$username = $cred["username"];
$password = $cred["password"];
$url = $cred["url"] . '/v1/upload';

try {
//List of terms to seed the concept expansion.
$temp  = array('seeds' => array('motrin','aspirin','keflex' ) );
$data = array(
'seeds' => $temp,
'dataset' => 'mtsamples',
'label' => 'drugs'   // label for the seeds
);
$data_string = json_encode($data);
$curl = curl_init();

curl_setopt($curl, CURLOPT_USERPWD, $username . $password);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Content-Type: application/json'));

$result = curl_exec($curl);
curl_close($curl);
echo $result;
} catch(Exception $e) {
echo $e->getMessage();
}
?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]