我正在使用 Google AppScript 将 11 Labs 的 API 集成到工作表中。 试图通过这一步,以便我可以对返回的文件执行某些操作,但我无法通过此响应代码 422。我正在遵循他们的 javascript 示例。我开始乐了
https://elevenlabs.io/docs/api-reference/text-to-speech
apiUrlEndPoint = "https://api.elevenlabs.io/v1/text-to-speech/Xb7hH8MSUJpSbSDYk0k2"
const options = {
method: 'POST',
headers: {
'xi-api-key': myAPIKeyWhichIDoHave
'Content-Type': 'application/json',
},
body: '{"text":"This is the text to convert","model_id":"eleven_multilingual_v2","voice_settings":{"stability":1,"similarity_boost":1}}',
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(apiUrlEndPoint, options);
我尝试过使用 stringify 和不使用 stringify 的变体。结果相同。
Response Code: 422
Response Body: {"detail":[{"loc":["body","text"],"msg":"field required","type":"value_error.missing"}]}
Request failed with status code 422
您在 Google Apps 脚本中使用 ElevenLabs API 时遇到的问题是由于响应代码 422 指示请求正文存在问题。具体来说,错误消息指出“文本”字段是必填字段,但缺失。
这是代码的修订版本,以确保请求正文的格式正确:
javascript
var apiUrlEndPoint = "https://api.elevenlabs.io/v1/text-to-speech/Xb7hH8MSUJpSbSDYk0k2";
var options = {
method: 'POST',
headers: {
'xi-api-key': myAPIKeyWhichIDoHave,
'Content-Type': 'application/json',
},
payload: JSON.stringify({
"text": "This is the text to convert",
"model_id": "eleven_multilingual_v2",
"voice_settings": {
"stability": 1,
"similarity_boost": 1
}
}),
muteHttpExceptions: true
};
var 响应 = UrlFetchApp.fetch(apiUrlEndPoint, 选项); Logger.log(response.getContentText()); 确保 API 密钥设置正确并且 JSON 有效负载结构正确。这应该可以解决 422 错误并从 ElevenLabs API 返回有效响应。