В AWS Translate Php sdk отсутствует поле, но отсутствует запрос в документации
У меня необычная проблема с aws sdk в сервисе AWS Translate.
Мне нужно динамически переводить некоторые ответные сообщения, но я получаю эту ошибку.
$currentLanguage = 'es';
// If the TargetLanguageCode is not "en", the SourceLanguageCode must be "en".
$targetLanguage= 'en';
$textToTranslate = 'El AWS SDK for PHP versión 3 permite a los desarrolladores de PHP utilizar Amazon Web Services en su código PHP y crear aplicaciones y software robustos utilizando servicios como Amazon S3, Amazon DynamoDB, Amazon Glacier, etc. Puede empezar rápidamente instalando el SDK mediante Composer (solicitando el paquete aws/aws-sdk-php) o descargando el archivo aws.zip o aws.phar independiente';
try {
$translate = $this->aws_utils->getTranslate();
$result = $translate->translateText(array(
'SourceLanguageCode' => $currentLanguage,
'TargetLanguageCode' => $targetLanguage,
'Text' => $textToTranslate
));
}catch (AwsException $e) {
// output error message if fails
var_dump($e->getMessage());die;
}
https://docs.aws.amazon.com/translate/latest/dg/API_TranslateText.html
В соответствии с документацией я правильно передаю параметры в службу SDK, но получаю эту ошибку 500: Обнаружена 1 ошибка при проверке ввода, предоставленного для операции TranslateText: [TranslatedText] отсутствует и является обязательным параметром
Кто-нибудь знает проблему? Это поле не должно быть там полностью
1 ответ
Измените код на
$currentLanguage = 'es';
// If the TargetLanguageCode is not "en", the SourceLanguageCode must be "en".
$targetLanguage= 'en';
$textToTranslate = 'El AWS SDK for PHP versión 3 permite a los desarrolladores de PHP utilizar Amazon Web Services en su código PHP y crear aplicaciones y software robustos utilizando servicios como Amazon S3, Amazon DynamoDB, Amazon Glacier, etc. Puede empezar rápidamente instalando el SDK mediante Composer (solicitando el paquete aws/aws-sdk-php) o descargando el archivo aws.zip o aws.phar independiente';
try {
$translate = $this->aws_utils->getTranslate();
$result = $translate->translateText(array(
'SourceLanguageCode' => $currentLanguage,
'TargetLanguageCode' => $targetLanguage,
'Text' => $textToTranslate,
));
}catch (AwsException $e) {
// output error message if fails
var_dump($e->getMessage());die;
}
и это должно работать