【发布时间】:2017-11-25 22:51:06
【问题描述】:
我在 Google 应用上编写了一个 Actions,我在其中请求用户许可。一切正常。现在我想在他的第一次对话中征求用户的许可。当他第二次开始对话时,动作应用程序应该记住该用户之前在对话中授予了权限。因此,当我每次开始对话时用户不必接受许可时,它会更舒服。有没有办法让这成为可能?
【问题讨论】:
标签: permissions actions-on-google
我在 Google 应用上编写了一个 Actions,我在其中请求用户许可。一切正常。现在我想在他的第一次对话中征求用户的许可。当他第二次开始对话时,动作应用程序应该记住该用户之前在对话中授予了权限。因此,当我每次开始对话时用户不必接受许可时,它会更舒服。有没有办法让这成为可能?
【问题讨论】:
标签: permissions actions-on-google
简短的回答:你不能。
然而,有些事情你不一定需要这样做。例如,如果您要询问他们的姓名 - 它可能不会更改,因此您可以在第一次询问此姓名后缓存答案。
如果您使用的是 node.js 库,您可以通过将信息添加到 app.userStorage 对象来轻松完成此操作。这将在会话之间为您保存。所以你的代码可能看起来像这样:
var userName = app.userStorage.userName;
if( !userName ){
if( app.isPermissionGranted() ){
userName = app.userStorage.userName = app.getUser().displayName;
} else {
requestPermission();
}
}
(虽然我没有测试过,但它看起来大致正确。)
如果您请求位置,这可能是也可能不是很好的解决方案。尽管 Google Home 设备具有固定位置,但通过手机使用智能助理可能会发生变化。在这种情况下,您需要每次都重新请求。
显然,这在很多情况下是不可取的,而且团队知道这是多么糟糕的体验。没有承诺何时,但希望他们正在制定更好的解决方案。
【讨论】: