Преобразование текста в речь Nexmo сразу же, когда ответы

Я перевожу текст в речь, используя приложение Nexmo composer. SMS работает хорошо, но есть проблема с сервисом T2S. Когда я отправляю запрос, он вызывает меня, но когда я нажимаю "Ответить", он завершает вызов Вот пример того, что json добавляется в вызов T2S:

[ "{ "action": "talk", 
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ligula nec quam pulvinar rn bibendum. Sed nisi ipsum, pretium tempor bibendum vel, condimentum ut erat. Vivamus sagittis, rn mi eget tincidunt laoreet, diam ligula euismod nisi, sit amet maximus ipsum arcu facilisis erat. rn Donec sed efficitur enim. Phasellus sagittis pulvinar semper. Pellentesque quis nibh sed neque rn maximus sodales. Morbi vel ornare elit. ", 
"voiceName": "Salli" }" ]

Я также пытаюсь с этим:

{ "action": "talk", 
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ligula nec quam pulvinar rn bibendum. Sed nisi ipsum, pretium tempor bibendum vel, condimentum ut erat. Vivamus sagittis, rn mi eget tincidunt laoreet, diam ligula euismod nisi, sit amet maximus ipsum arcu facilisis erat. rn Donec sed efficitur enim. Phasellus sagittis pulvinar semper. Pellentesque quis nibh sed neque rn maximus sodales. Morbi vel ornare elit. ", 
"voiceName": "Salli" }

но никто не работает.

Вот пример отправки мне вызова и создания файла в S3, который будет читать Nexmo:

$json_file = str_random(16).'.json';

        $data = [
            'action' => 'talk',
            'text' => $event->notification->content.' '.$event->arrived_in,
            'voiceName' => 'Salli'
        ];

        $newJsonString = json_encode($data, JSON_PRETTY_PRINT);

        $this->flysystem->connection('awss3');
        $this->flysystem->write('call_cleanup_notifications/'.$json_file, stripslashes($newJsonString));

        $basic  = new Basic(getenv('NEXMO_KEY'), getenv('NEXMO_SECRET'));

        $this->flysystem->connection('awss3');
        $key = $this->flysystem->read('application.key');

        $keypair = new Keypair($key, getenv('NEXMO_APPLICATION_ID'));

        $client = new Client(new Container($basic, $keypair));
$client->calls()->create([
            'to' => [[
                'type' => 'phone',
                'number' => $event->cleanupUserChanel->home_phone_number
            ]],
            'from' => [
                'type' => 'phone',
                'number' => getenv('NEXMO_SMS_FROM')
            ],
            'answer_url' => [getenv('GATEWAY_API_URL').'/notification_call/'.$json_file],
        ]);

2 ответа

Решение

Вот решение для сделать этот файл JSON T2S в допустимом формате:

            $json_file = str_random(16) . '.json';
            $data[] = (object) [
                'action' => 'talk',
                'text' => "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
                'voiceName' => 'Salli'
            ];
//save file in file system using flysystem composer package
            $this->flysystem->write($json_file, json_encode($data,JSON_PRETTY_PRINT));

Я думаю, что вы достаточно близки с этим первым примером, но NCCO не совсем корректный JSON. В начале, после [, удалите цитату " прежде чем объект начинается в {, (затем сделайте то же самое в конце, удалите последнюю цитату перед ], Надеюсь, это поможет!

Другие вопросы по тегам