#php #curl #ibm-watson #tone-analyzer
#php #curl #ibm-watson #tone-анализатор
Вопрос:
Я хотел бы получить доступ к IBM Tone Analyzer через PHP с помощью CURL, однако я продолжаю получать ошибки авторизации, как показано ниже. Код, который я использую, показан в разделе кода.
Просматривая многочисленные страницы справки и форумы, я не нашел подходящего решения. Может кто-нибудь, пожалуйста, помогите мне, как это решить?
Заранее большое спасибо.
С наилучшими пожеланиями!
Это код, который я использую:
<?php
//print_r($_POST);
$ch = curl_init();
$file_path = "tone.json";
$url = "https://api.eu-gb.tone-analyzer.watson.cloud.ibm.com/instances/$BLACKENED$/v3/tone?$
$header_args = array(
'Accept: application/json',
'Content-Type: application/json',
'Authorization: Basic apikey:$BLACKENED
Это ошибка, которую я получаю:
HTTP/1.1 401 Unauthorized strict-transport-security: max-age=31536000; includeSubDomains; WWW-Authenticate: Basic realm="IBM Watson Gateway(Log-in)" Content-Length: 164 Content-Type: application/json x-dp-watson-tran-id: $BLACKENED$ x-request-id: $BLACKENED$ x-global-transaction-id: $BLACKENED$ Server: watson-gateway X-EdgeConnect-MidMile-RTT: 0 X-EdgeConnect-Origin-MEX-Latency: 380 Date: Mon, 06 Dec 2021 21:46:28 GMT Connection: close {"code":401,"more_info":"https://cloud.ibm.com/docs/watson?topic=watson-authorization-error","error":"Unauthorized","trace":"$BLACKENED$"} 1
Комментарии:
1. Мое предположение - вам нужно будет предоставить лучший, более полный набор параметров для поддержки вашего запроса curl - в частности, на основе SSL-соединений. Есть несколько, которые следует использовать всякий раз, когда вы имеете дело с конечной точкой, защищенной SSL, например
CURLOPT_SSL_VERIFYPEER
,CURLOPT_SSL_VERIFYHOST
иCURLOPT_CAINFO
где вы указываете допустимыйcacert.pem
uri файла. Также - что такоеCURLOPT_POS
??? вы усекли отправляемые значения или это опечатка??2. @ProfessorAbronsius это вряд ли проблема с SSL. Изначально я думал так же, пока не понял, что OP просто опубликовал весь HTTP-ответ без разрывов строк. Фактическая причина, указанная в теле ответа в конце, - ошибка аутентификации.
3. В ответе сообщается, что это ошибка аутентификации, и даже дается ссылка на соответствующие документы, включая устранение неполадок. cloud.ibm.com/docs/watson?topic=watson-authorization-error
4. @ProfessorAbronsius: Спасибо за ваш ответ. Я кое-что пропустил в своем коде, который я сейчас отредактировал. Я не получаю файл cacert.pem, но я попробовал варианты ssl. Однако это никоим образом не помогло. Я вижу, что это ошибка аутентификации, но как я могу это решить?
5. @Sammitch: Спасибо, я прочитал эту документацию, но пока это мне не помогло. У вас есть несколько советов о том, как это решить?
);
curl_setopt_array($ch,array(CURLOPT_URL => $url, CURLOPT_HEADER => $header_args, CURLOPT_UPLOAD => true, CURLOPT_POST => true, CURLOPT_INFILE => $file_path));
$response = curl_exec($ch);
echo($response);
curl_close($ch);
?>
Это ошибка, которую я получаю:
Комментарии:
1. Мое предположение — вам нужно будет предоставить лучший, более полный набор параметров для поддержки вашего запроса curl — в частности, на основе SSL-соединений. Есть несколько, которые следует использовать всякий раз, когда вы имеете дело с конечной точкой, защищенной SSL, например
CURLOPT_SSL_VERIFYPEER
,CURLOPT_SSL_VERIFYHOST
иCURLOPT_CAINFO
где вы указываете допустимыйcacert.pem
uri файла. Также — что такоеCURLOPT_POS
??? вы усекли отправляемые значения или это опечатка??2. @ProfessorAbronsius это вряд ли проблема с SSL. Изначально я думал так же, пока не понял, что OP просто опубликовал весь HTTP-ответ без разрывов строк. Фактическая причина, указанная в теле ответа в конце, — ошибка аутентификации.
3. В ответе сообщается, что это ошибка аутентификации, и даже дается ссылка на соответствующие документы, включая устранение неполадок. cloud.ibm.com/docs/watson?topic=watson-authorization-error
4. @ProfessorAbronsius: Спасибо за ваш ответ. Я кое-что пропустил в своем коде, который я сейчас отредактировал. Я не получаю файл cacert.pem, но я попробовал варианты ssl. Однако это никоим образом не помогло. Я вижу, что это ошибка аутентификации, но как я могу это решить?
5. @Sammitch: Спасибо, я прочитал эту документацию, но пока это мне не помогло. У вас есть несколько советов о том, как это решить?