首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Home Assistant -请求失败错误代码400

Home Assistant -请求失败错误代码400
EN

Stack Overflow用户
提问于 2021-07-15 21:45:25
回答 1查看 451关注 0票数 0

我做了这个功能,使其有可能发送公告到我的谷歌家庭迷你,但我收到错误代码400 (Bad Request)不间断。我尝试过使用多种方法来解决这个问题。

在家庭助理中,我已经设置了我的谷歌主页,并可以通过它播放媒体,但每当我尝试使用家庭助理的"google_say“应用程序接口时,它都不起作用。

我还尝试使用一个名为"API Client“的应用程序在我的手机上调用Home-Assistant API,但得到了相同的响应。

代码语言:javascript
复制
    function ttsGoogleHome(text) {
    var ttsUrl = "http://127.0.0.1:8123/api/services/tts/google_say?api_password=<MY_PASSWORD>"
    var varToken = "<MY_TOKEN>"
    
    var postData = {"entity_id": "media_player.david", "message": `${text}`};
  
      let axiosConfig = {
        headers: {
            'authorization': `Bearer ${varToken}`,
            'Content-Type': 'application/json',
            "Access-Control-Allow-Origin": "*",
        }
      };
  
      axios.post(ttsUrl, postData, axiosConfig)
      .then((res) => {
        console.log("RESPONSE RECEIVED: ", JSON.stringify(res));
      })
      .catch((err) => {
        console.log("AXIOS ERROR: ", JSON.stringify(err));
      })
    }

这是我在服务器中得到的响应:

代码语言:javascript
复制
        {
          "message": "Request failed with status code 400",
          "name": "Error",
          "stack": "Error: Request failed with status code 400\n    
    at createError (/home/pi/nodejs/node_modules/axios/lib/core/createError.js:16:15)\n    
    at settle (/home/pi/nodejs/node_modules/axios/lib/core/settle.js:17:12)\n    
    at IncomingMessage.handleStreamEnd (/home/pi/nodejs/node_modules/axios/lib/adapters/http.js:260:11)\n    
    at IncomingMessage.emit (events.js:388:22)\n    
    at endReadableNT (internal/streams/readable.js:1336:12)\n    
    at processTicksAndRejections (internal/process/task_queues.js:82:21)",
          "config": {
            "url": "http://127.0.0.1:8123/api/services/tts/google_say?api_password=<MY_PASSWORD>",
            "method": "post",
            "data": "{\"entity_id\":\"media_player.david\",\"message\":\"Erste Stunde  Fach Deutsch Lehrer Schemmer Raum Schemmer\"}",
            "headers": {
              "Accept": "application/json, text/plain, */*",
              "Content-Type": "application/json;charset=UTF-8",
              "authorization": "Bearer <MY_TOKEN>",
              "Access-Control-Allow-Origin": "*",
              "User-Agent": "axios/0.21.1",
              "Content-Length": 103
            },
            "transformRequest": [
              null
            ],
            "transformResponse": [
              null
            ],
            "timeout": 0,
            "xsrfCookieName": "XSRF-TOKEN",
            "xsrfHeaderName": "X-XSRF-TOKEN",
            "maxContentLength": -1,
            "maxBodyLength": -1
          }
        }
EN

回答 1

Stack Overflow用户

发布于 2021-07-16 05:13:43

我发现了我的错误。

我使用了错误的api链接

下面是调用它的正确方法。

代码语言:javascript
复制
function ttsGoogleHome(text) {
var ttsUrl = "http://127.0.0.1:8123/api/services/tts/google_translate_say?api_password=APIPASSWORD"
var varToken = "TOKEN"

var postData = `{"entity_id": "media_player.david", "message": "${text}", "language": "de"}`;

  let axiosConfig = {
    data: null,
    headers: {
        'authorization': `Bearer ${varToken}`,
        'Content-Type': 'application/json',
        "Access-Control-Allow-Origin": "*",
    }
  };

  axios.post(ttsUrl, postData, axiosConfig)
  .then((res) => {
      console.clear();
    console.info("RESPONSE RECEIVED: ", JSON.stringify(res));
  })
  .catch((err) => {
      console.clear();
    console.error("AXIOS ERROR: ", JSON.stringify(err));
  })

}

这也是我的configuration.yaml

代码语言:javascript
复制
# Configure a default steup of Home Assistant (frontend, api, etc)

# Text to speech
tts:
  - platform: google_translate
  - language: "de"
  - service_name: google_say
  -base_url: http://192.168.0.176:8123
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

homeassistant:
  auth_providers:
   - type: legacy_api_password
     api_password: !secret http_password
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68395046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档