LexRuntimeService в AWS SDK автоматически JSON кодирует , а Base64 кодирует массив postContent.Передав ей строку JSON, кодировка json в SDK поместит двойные кавычки вокруг {}
, что делает его "{}"
, и это приведет к ошибке.
Так что просто передайте sessionAttributes
и requestAttributes
как массивы PHP.
$lex_response = $lex_client->postContent([
'accept' => 'text/plain; charset=utf-8',
'botAlias' => 'XXXX',
'botName' => 'XXXX',
'contentType' => 'text/plain; charset=utf-8',
'inputStream' => $userInput,
'requestAttributes' => array(),
'sessionAttributes' => array(), // <---- PHP Array not JSON
'userId' => 'XXXXXXXXXXXX',
]);