我的目标是获得"开灯"当我说到我的Google Home时发送消息。为此,我访问了他们的文档页面,其中列出了this sample code。我下载并在本地运行它。即使我认为我在本地运行它,默认情况下也可以在" https://something.ngrok.io"公开发布。
我打开了这个页面并添加了一个新灯(我选择了单色,因为它看起来比RGB灯更简单)。
然后,我创建了一个项目"假光"在谷歌的行动。
现在,当我点击"添加设备"在Google Home应用上,如下所示。如果我点击它,它会显示OAuth页面,但是当我尝试登录时,它说,"无法更新设置,请检查您的连接"。
NPM控制台日志如下(我审查了一些部分):
login successful rick
authCode successful 5*************************
GET /oauth?response_type=code&client_id=***********&redirect_uri=https://oauth-redirect.googleusercontent.com/r/******** 302 8.858 ms - 1418
/token query {}
/token body { grant_type: 'authorization_code',
code: '*****************',
redirect_uri: 'https://oauth-redirect.googleusercontent.com/r/*****************',
client_id: 'ZxjqWpsYj3',
client_secret: 'hIMH3uWlMVrqa7FAbKLBoNUMCyLCtv' }
getClient ZxjqWpsYj3, hIMH3uWlMVrqa7FAbKLBoNUMCyLCtv
return getClient { clientId: 'ZxjqWpsYj3',
clientSecret: 'hIMH3uWlMVrqa7FAbKLBoNUMCyLCtv' }
client { clientId: 'ZxjqWpsYj3',
clientSecret: 'hIMH3uWlMVrqa7FAbKLBoNUMCyLCtv' }
handleAuthCode {}
getClient ZxjqWpsYj3, hIMH3uWlMVrqa7FAbKLBoNUMCyLCtv
return getClient { clientId: 'ZxjqWpsYj3',
clientSecret: 'hIMH3uWlMVrqa7FAbKLBoNUMCyLCtv' }
getAccessToken = { uid: '1234',
accessToken: '*****************',
refreshToken: '*****************',
userId: '1234' }
return getAccessToken = { token_type: 'bearer',
access_token: '*****************',
refresh_token: '*****************' }
respond success { token_type: 'bearer',
access_token: '*****************',
refresh_token: '*****************' }
POST /token 200 6.401 ms - 100
POST / 404 0.401 ms - 140
我使用了示例帐户rick/oldman
。最后一个日志显示" 404"但我不确定为什么会这样。
答案 0 :(得分:0)
履行地址必须包含“/ smarthome”。我输入了“https://xxxxxxxx.ngrok.io”。我将其更改为“https://xxxxxxxx.ngrok.io/smarthome”并且错误没有再次发生。
https://github.com/actions-on-google/smart-home-nodejs/issues/58