actions-on-google - 报告状态时遇到内部错误
问题描述
我正在尝试电视设备类型,但在向 Google 发送响应时收到“遇到内部错误”。
当我homegraph.devices.reportStateAndNotification
使用以下有效负载时
{
"requestId":"f7549700-aedf-433f-b558-53804c19b7b6",
"agentUserId":"61895a84e5dcfc75b21b5c43",
"payload":{
"devices":{
"states":{
"6192275c26ab9a11a26cdcfb":{
"online":true,
"on":true,
"currentInput":"hdmi_1",
"playbackState":"STOP",
"currentVolume":0,
"isMuted":false
}
}
}
}
}
出现以下错误。
Error: Internal error encountered.
at Gaxios._request (/xxxx/api/node_modules/gaxios/build/src/gaxios.js:86:23)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async JWT.requestAsync (/var/www/sinric_pro/api/node_modules/google-auth-library/build/src/auth/oauth2client.js:349:18)
我检查了谷歌云控制台中的日志,也找不到任何错误报告。希望有人能指出我为什么
同步响应:
{
"status":200,
"headers":{
"content-type":"application/json;charset=utf-8"
},
"body":{
"requestId":"2275190106898401713",
"payload":{
"agentUserId":"61895a84e5dcfc75b21b5c43",
"devices":[
{
"id":"6192275c26ab9a11a26cdcfb",
"type":"action.devices.types.TV",
"traits":[
"action.devices.traits.OnOff",
"action.devices.traits.InputSelector",
"action.devices.traits.Channel",
"action.devices.traits.TransportControl",
"action.devices.traits.Volume"
],
"name":{
"defaultNames":[
"TV"
],
"name":"TV",
"nicknames":[
"TV"
]
},
"willReportState":true,
"roomHint":"Living Room",
"deviceInfo":{
"manufacturer":"Sinric Pro",
"model":"SinricPro television",
"hwVersion":"1.0",
"swVersion":"1.0"
},
"attributes":{
"transportControlSupportedCommands":[
"NEXT",
"PREVIOUS",
"PAUSE",
"STOP",
"RESUME",
"CAPTION_CONTROL"
],
"availableApplications":[
{
"key":"youtube",
"names":[
{
"name_synonym":[
"Youtube",
"Youtube_en"
],
"lang":"en"
}
]
},
{
"key":"netflix",
"names":[
{
"name_synonym":[
"NetFlix",
"netflix_en"
],
"lang":"en"
}
]
}
],
"availableInputs":[
{
"key":"hdmi1",
"names":[
{
"name_synonym":[
"HDMI 1",
"DVD player"
],
"lang":"en"
}
]
},
{
"key":"hdmi_2",
"names":[
{
"name_synonym":[
"HDMI 2",
"TV"
],
"lang":"en"
}
]
}
],
"availableChannels":[
{
"key":"ktvu2",
"names":[
"Fox",
"KTVU"
],
"number":"2"
},
{
"key":"abc1",
"names":[
"ABC",
"ABC East"
],
"number":"702.4-11"
}
],
"orderedInputs":false,
"volumeMaxLevel":100,
"volumeCanMuteAndUnmute":true,
"volumeDefaultPercentage":6,
"levelStepSize":2,
"commandOnlyVolume":false,
"supportActivityState":false,
"supportPlaybackState":true
}
}
]
}
}
}
询问:
"inputs": [
{
"intent": "action.devices.QUERY",
"payload": {
"devices": [
{
"id": "6192275c26ab9a11a26cdcfb"
}
]
}
}
],
"requestId": "6671070061963216968"
}
查询响应:
{
"status": 200,
"headers": {
"content-type": "application/json;charset=utf-8"
},
"body": {
"requestId": "6671070061963216968",
"payload": {
"devices": {
"6192275c26ab9a11a26cdcfb": {
"status": "SUCCESS",
"online": false,
"on": false,
"currentInput": "hdmi_1",
"playbackState": "STOP",
"currentVolume": 0,
"isMuted": false
}
}
}
}
}
解决方案
当您尝试访问的 Web 服务器以某种方式配置错误,导致它无法正确响应您要求它执行的操作时,就会发生内部错误。使用外部库有时也会导致像这个错误这样的内部错误,
错误:遇到内部错误。
在 Gaxios._request (/xxxx/api/node_modules/gaxios/build/src/gaxios.js:86:23)
在 runMicrotasks ()
您可以使用 curl 或 postman 之类的工具来确保发送的内容是正确的,因为看起来当前状态并未报告给 HomeGraph API。请按照链接https://developers.google.com/assistant/smarthome/develop/report-state?hl=en中的步骤正确报告状态并更新 HomeGraph API
推荐阅读
- python - 如何检查for循环是否在中间值
- ruby-on-rails - 当我想重新注册表单时收到以下错误:NoMethodError (undefined method `permit' for "create":String)
- javascript - jquery touchswipe 插件在 iOS 上无法正常工作
- android - 自定义工具栏
- java - 有没有按照我们想要的顺序显示两个不同类的两个对话框?
- three.js - 无法使用 THREE.js 和 Mapbox GL 投射阴影
- javascript - 如何通过 $POST 从 ajax 发送对象数据(从 jQuery 到 vanilla JS)
- laravel - 有没有办法将电话身份验证添加到默认的 laravel auth 脚手架
- c++ - 不能包含 cliext 标头(用于 c++ cli、Visual Studio)
- c# - 在新的自动增量后立即更新记录