因此,在过去的一年中,许多社区委员会都报告了这种类型的错误,我们找不到可接受的答案。我们刚刚开始与Google Home集成并创建了家庭自动化行动,我们也遇到了类似的错误......
{
insertId: "10wvnj2fyb1thy"
logName: "projects/bitdog-home-f69bd/logs/actions.googleapis.com%2Factions"
Show matching entries
Hide matching entries
Add field to summary line
receiveTimestamp: "2018-12-06T13:28:13.939975519Z"
resource: {
labels: {
action_id: "SMART_HOME_SYNC"
project_id: "bitdog-home-f69bd"
version_id: ""
}
type: "assistant_action"
}
severity: "ERROR"
textPayload: "SYNC: Request ID 742344561631232315 failed with code: OPEN_AUTH_FAILURE"
timestamp: "2018-12-06T13:28:13.931998358Z"
}
这会在Google Home应用中显示为“无法更新设置,请检查您的连接”
OAuth服务日志显示成功的帐户链接和成功的refresh_token请求。 Google不会从我们可以告诉的内容中尝试对Action处理程序进行SYNC调用。
我们有其他使用OAuth服务器的系统,它们运行良好,我们对如何继续调试此问题几乎没有任何损失。我们今天创建了一张支持票,但我不相信我们会得到有意义的帮助。
我们还尝试在Android和iOS上使用Google Home应用。我们已尝试将默认浏览器从Chrome更改为Firefox。没有任何改变结果。我们还确保我们的access_token采用JWT格式,以确定google是否对令牌大小或格式敏感,并且没有任何效果。我们甚至确保Google Home应用用户与登录浏览器的用户相匹配。
救命!
我确实让它运转了。它已经在使用Amazon Echo Skill,但似乎Google的实现(OpenAuth)有点严格。我将access_token从专有的加密令牌格式更改为合法签名的JWT令牌。我还从响应中删除了expires_in,它开始工作,不确定它是access_token JWT令牌格式还是删除了expires_in。我很高兴我可以继续前进。如果我有机会,我会测试看看哪个更改有效并在此再次评论。
谢谢。
对于有这个问题的人 -
我不得不采取多个步骤来解决此问题,这些问题在任何文档中都没有明确说明。
在documentation for OAuth account linking上,它说有两种身份验证方法:隐式和授权代码。显然,只有身份验证代码流适用于智能家居。
问题是我正在进行数据库操作(花费时间),所以我不能简单地在它准备好时返回一个值;我不得不返回一个Promise insead,然后履行承诺。
希望这对任何坚持这个反复出现的问题的人都有帮助!基本上,检查您的身份验证流程并使SYNC按时返回有效的JS对象。