问题标签 [google-home]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Google Home to Google Sheet 用时间戳记笔记
所以我想要一种用时间戳记录来自 Google Home 的笔记的方法。不幸的是,Google Home 不提供此功能,因此我在这里找到了使用 IFTTT Applet 的解决方法:
https://ifttt.com/applets/DMC8yDAW-log-notes-in-a-google-drive-spreadsheet
这让我完成了 80% 的工作,缺少的部分是插入记笔记时的时间戳。如果我手动编辑工作表,我发现了一些可以执行此操作的代码:
然而,这不适用于 IFTTT 小程序!知道我该怎么做吗?
node.js - actions-on-google api.ai 不会在使用 nodejs 和 express 的 POST 请求中发送正文
我正在尝试在我的计算机上使用 api.ai 从 actions-on-google运行sillyNameMaker 示例。我用 express 和 ngrok 隧道设置了一个 nodejs 服务器。当我尝试在 api.ai 上使用我的代理发送请求时,我的服务器收到 POST 请求,但正文似乎是空的。有什么我没有正确设置的吗?
这是我的 index.js 文件:
我得到的错误是:
我正在尝试打印 req.body 但它未定义...在此先感谢您的帮助。
heroku - 这是在 Heroku 上成功的 Google Actions API 调用吗
我在这里关注数字精灵文章: https ://developers.google.com/actions/develop/apiai/tutorials/number-genie
我已经把这些文件放在了这里的 github 存储库中:http: //github.com/quique123/mygennie
我在 Heroku 日志中得到了这个:
正文:{"originalRequest":{"source":"google","data":{"surface":{"capabilities":[{"name":"actions.capability.AUDIO_OUTPUT"}]},"inputs" :[{"arguments":[{"raw_text":"36","text_value":"36","name":"text"}],"intent":"assistant.intent.action.TEXT"," raw_inputs":[{"query":"36","input_type":2,"annotation_sets":[]}]}],"user":{"user_id":"sometring/mIqGRE=","permissions": []},"device":{"locale":"en-US"},"is_in_sandbox":true,"conversation":{"conversation_token":"[]","conversation_id":"1493419815932","type":2}}},"id":"e5ca3d68-3efa-4285-923f-3e1ff7fz87cf","timestamp":"2017-04-28T22:33:51.422Z","lang":"en","结果":{"source":"agent","resolvedQuery":"36","speech":"","action":"check_guess","actionIncomplete":false,"parameters":{"check_guess": "36"},"contexts":[{"name":"actions_capability_audio_output","parameters":{"check_guess.original":"36","check_guess":"36"},"lifespan":0}] ,"元数据":{"intentId":"c863e1e2-c950-45d8-9b96-b57e0b1de77e","webhookUsed":"true","webhookForSlotFillingUsed":"false","intentName":"provide_guess"},"fulfillment":{"speech":"","messages":[{"type":0,"speech":""}]},"score":1}," status":{"code":200,"errorType":"success"},"sessionId":"1493418215932"}
但是网络模拟器返回了一个抱歉,当我试图猜测一个数字时,它现在不可用。那么为什么 json 有效负载会有一个代码 200:success 呢?
node.js - Heroku nodejs 上的 Google Actions API webhook 响应
问题:Google Actions 是否总是通过在每个用户输入上触发 webhook 帖子来工作,我只需要处理逻辑以便每次解析 json 并仅在找到我感兴趣的参数时才做出反应?或者有没有办法控制 Google Actions API 发布的 webhook 帖子,以便仅在通过包含感兴趣参数的值完全填充操作时发布它?
#详细信息:我在 Heroku 上部署了这个 nodejs 应用程序: https ://github.com/quique123/myjsonparser/blob/master/app.js
我将它用作 Google Actions API(数字精灵)示例的 webhook。在数字精灵中,用户以“与数字精灵交谈”开始游戏。精灵的回应是我在想一个数字……猜猜看。用户用一个数字做出响应,然后(并且仅在那时)运行逻辑以将猜测与答案进行比较。
但是我对来自谷歌主页的每个帖子请求都进行了 api 调用。换句话说,每次用户与对话 api 交互时都会创建 webhook 帖子。可以在这里看到 body 不包含用户输入参数并且 Heroku 响应“与数字精灵交谈”:
当我使用 Google Actions API 上的数字对其进行测试时,您可以在 Heroku 对“44”的响应中看到 check_guess 包含在内:
问题是 postSwitch{} 在这两种情况下都会发生。
这是 Google Actions 始终工作的方式吗,我只需要处理逻辑以便每次解析 json 并仅在找到 check_guess 时才做出反应?或者有没有办法控制 Google Actions API 发布的 webhook 帖子,以便仅在通过包含参数 check_guess 的值完全填充操作时发布它?
google-api - 使用谷歌操作传递状态数据
我正在使用 api.ai 为 Google Home 开发一个 Google Actions 项目。
是否可以将状态参数作为响应的一部分传递给 api.ai 并将其包含在下一个请求中?
Amazon Alexa API 处理这样的流程,它派上了用场。
谢谢
编辑:
我之前没有提到这一点:在谷歌助手触发我的意图后,我有 api.ai 向 webhook 发送请求。api.ai 期望的响应在此处定义。我尝试在响应中包含额外的字段,但这些不包含在来自 api.ai 的任何未来意图请求中。我还尝试将字段和值添加到响应的谷歌特定部分(在此处定义)无济于事。
作为我感兴趣的一个例子,在响应 Alexa 请求时,我们可以包含一个 json 字段“sessionAttributes”,然后亚马逊在作为该交互一部分的任何未来请求中传递该字段。
在这种情况下,我在第一个意图(随后用于提取记录)上查询数据库键并将该键传递给 sessionAttributes 以避免对我收到的每个意图请求执行该查找。
google-home - 让 Google Home 测试应用的存活时间超过 29 分钟
有没有人找到让您开发的 Google Home 应用程序存活超过 29 分钟的方法?如果我正在为它积极开发,我的应用程序只能在实际设备上访问。所以实际上要与它交互,我需要在最后 29 分钟内向它推送一个命令。设置调用名称时
我收到这条消息:
如果我试图在那个时间线之后调用它,它就无法访问。有点烂
heroku - 如何在 Heroku 上部署 Google Assistant 示例代码
我正在尝试在 heroku 上部署示例 apiai-facts-about-google-nodejs。我已按照说明进行操作,但在尝试启动应用程序时,在日志中出现错误:
这似乎是因为代码是为 Google Cloud Functions 编写的。我认为命令:
是 GCF 特定的。我是否需要以某种方式修改此代码以使其在 Heroku 上运行?
我看到这个问题/答案似乎表明它应该按原样工作,但这不是我所看到的。
python - 即使没有参数值,Google API.ai webhook 也会触发 node.js 调用
我有一个正在工作的 Google API.ai 项目,我与之交谈,要求它打开一个组件,它将 json 发布到 webhook URL,我的 nodejs 解析 json 以在树莓上执行 python 脚本。问题是,显然只是调用欢迎意图会触发 json 帖子并切换 python 脚本以打开组件。奇怪的是,if 语句确定要调用哪个 python 脚本所需的组件状态在欢迎意图状态下是空的。
这是我的 node.js:
我以为是我的 app.js 代码在欢迎意图上发布帖子,但我不太确定,因为在欢迎意图上,组件状态为空,没有价值,所以 soc 是!=“on”,所以if 语句工作正常。问题在于:
代码也在欢迎意图上被调用,它不应该。
json - API.ai Google Home Web Simulator 错误:“机器人现在没有响应。请稍后再试。” 错误:无法解析来自 http_response 的 SDKResponse
我恢复了一个代理(工作代理),Restore from Zip
使用API.ai
. 我在 API.ai 中测试了代理,它运行成功。
但是当我尝试将它与 Google Home 集成,并使用 Google Home Web Simulator 对其进行测试时,我得到了错误:
"Bot isn't responding now. Try again soon."
这是Response Json
:
"Failed to parse SDKResponse from http_response: 'HTTP/1.1 200 OK\r\nContent-Type: application/json;charset=UTF-8\r\nContent-Length: 230\r\nConnection: keep-alive\r\nDate: Tue, 09 May 2017 07:13:04 GMT\r\nServer: nginx/1.11.2\r\nAccess-Control-Allow-Credentials: true\r\nAssistant-Interaction-Error-Code: 1\r\nAssistant-Interaction-Error-Message: Empty speech response\r\nCache-control: no-cache=\"set-cookie\"\r\nSet-Cookie: AWSELB=9D5B4D210CCFFAF1BE1E0CD7C7E6FCBD7B46140CAAB35B563903DCE43FCC26342E3F89041AE3FE415E45579D21DA955B71D82B5CBB83188E876559AECB9AFBA466D1A80189;PATH=/\r\nX-Cache: Miss from cloudfront\r\nVia: 1.1 3212ba6c9a2d0009095ca19f00206ff3.cloudfront.net (CloudFront)\r\nX-Amz-Cf-Id: LUDwKPkUCwQJuK1elUUy3ZUZXTz-qcegNKGMUJv5Hb4k2a_ea2tRqg==\r\n\r\n{\"message\":\"Empty speech response\",\"apiResponse\":{\"id\":\"cd783d0c-11ab-438a-91ac-167f7998d678\",\"timestamp\":\"2017-05-09T07:13:04.382Z\",\"lang\":\"en\",\"result\":{},\"status\":{\"code\":200,\"errorType\":\"success\"},\"sessionId\":\"1494313984341\"}}'"
我将不胜感激任何帮助。
谢谢你。
编辑:解决方案
阅读Response JSON
,我注意到:Empty speech response
。我重新检查了我的 API.ai 代码并注意到其中一个Intents
(在我的情况下Default Welcome Intent
)正在提供输出Empty speech response.
虽然在 API.ai 的控制台上这不是问题,但当您尝试链接到 Google Home Web Simulator 时,它不会工作。因此,如果您有类似的问题,也许故障排除的第一步是找出哪个Intent
是给Empty speech response
.
希望这可以帮助遇到类似问题的其他人。
actions-on-google - 无法将 IPA 音素与 Google Home SSML 一起使用
Alexa 能够使用 IPA 音素以语音方式说话...下面的示例
我在 Google Home 的任何地方都看不到这种支持。任何人都知道 Google 的 SSML 是否支持这种支持?