Я уже давно пользуюсь AWS SDK (PHP) LexRuntimeService, и это неожиданная ошибка, которая возникает в случайных случаях.
PostText Args устанавливаются следующим образом, в зависимости от ввода пользователя и данных:
(
[botAlias] => xxxxx
[botName] => xxxxxxx
[inputText] => book a ride
[userId] => xxxxxxxxxxxxxx
[requestAttributes] => Array
(
[userID] => xxxxxxxxxxxxxx
[userInput] => book a ride
[passenger_first_name] => xxxxxxxx
[passenger_last_name] => xxxxxx
[passenger_email] => xxxx@xxxxxxxxx.com
[channel] => facebook
[chatbot_session_id] => xx
)
)
Эти PostText Args должны быть тем, что определяет эту ошибку, но я не могу найти никакой разницы между рабочими Args и ошибочными Args. Когда ошибки SDK, это то, что я получаю:
Aws \ LexRuntimeService \ Exception \ LexRuntimeServiceException:
Ошибка выполнения \ «PostText \» на \ «https: //runtime.lex.us-east-1.amazonaws.com/bot/xxxxxxx/alias/xxxxxx/user/xxxxxxxxxxxxxx/text \»;
Ошибка AWS HTTP: ошибка клиента:
POST https:\/\/runtime.lex.us-east-1.amazonaws.com\/bot\/xxxxx\/alias\/xxxxx\/user\/xxxxxxxxxxxx\/text
привело к
400 Bad Request
ответ: \ n {\ «Message \»: \ «class com.amazon.coral.value.json.numbers.TruncatingBigNumber не может быть преобразован в строку \»} \ n SerializationException (client): — {\ «Message \ «: \» class com.amazon.coral.value.json.numbers.TruncatingBigNumber нельзя преобразовать в строку \ «} в /var/www/html/yt074/thirdparty/aws/Aws/WrappedHttpHandler.php в строке 193</ Я></ Е></ Тр> \ п
Я попытался установить каждый из аргументов Args в такие строки:
$requestAttributes["userID"] = (string) $userData['userID'];
Но ошибка все еще происходит. Любые предложения / объяснения того, что может вызвать эту ошибку?
Задача ещё не решена.
Других решений пока нет …