Nexmo API 对 Text to Speech 的更改?

问题描述

很长一段时间以来,我一直在使用以下内容从我的应用程序发送 text-to-speech 警报。

curl 'https://api-us-1.nexmo.com/tts/json' \
-d api_key=****** \
-d api_secret=****** \
-d to=0035193xxxxxxx \
-d from=0035193xxxxxxx \
--data-urlencode 'text=Alert! Check Something... ' \
-d repeat=2 \
-d voice="male" \

最近,该服务已停止为某些运营商提供服务。
在查看 Nexmo 文档时,我看不到 /tts/json API 文档。

有人知道发生了什么吗?
/tts/json API 仍然可用吗?
/v1/calls API 对我的需求来说绝对是矫枉过正。

解决方法

不幸的API是日落前一段,并与新的语音API取代。

https://developer.nexmo.com/voice/voice-api/code-snippets/make-an-outbound-call-with-ncco 将是最接近 Voice API 的替代方案。最大的变化是在切换到使用JWT用于认证与密钥/秘密AUTH使用较旧的API。

如果你有Nexmo CLI安装可以生成JWT作为脚本的一部分。以下应该有效:

#!/bin/bash
#
# Send voice message to a user
#
# ./script.sh <number to call> <vonage number> "<message to speak>"

PATH_TO_PRIVATE_KEY=<path to private key>
VONAGE_APPLICATION_ID=<application ID>
TO_NUMBER=$1
VONAGE_NUMBER=$2
MESSAGE=$3
JWT=$(nexmo jwt:generate $PATH_TO_PRIVATE_KEY application_id=$VONAGE_APPLICATION_ID)

curl -X POST https://api.nexmo.com/v1/calls\
    -H "Authorization: Bearer "$JWT\
    -H "Content-Type: application/json"\
    -d "{\"to\":[{\"type\": \"phone\",\"number\": \"$TO_NUMBER\"}],\"from\": {\"type\": \"phone\",\"number\": \"$VONAGE_NUMBER\"},\"ncco\": [
          {
            \"action\": \"talk\",\"text\": \"$MESSAGE\"
          }
        ]}"