在Google Apps操作中保存已授予的对话权限

时间:2017-11-25 14:09:38

标签: permissions actions-on-google

我在Google应用上编写动作,我请求用户获得许可。一切正常。现在我想在第一次谈话中要求用户许可。当他第二次启动对话时,操作应用应该记住该用户之前在对话中授予了权限。因此,当用户每次开始对话时都不必接受权限时,它会更加舒适。有没有办法让这成为可能?

1 个答案:

答案 0 :(得分:2)

简短回答:你不能。

然而,对某些事情你不一定需要这样做。例如,如果您要求他们的名字 - 它可能不会改变,所以您可以在第一时间提出要求,然后缓存答案。

如果您正在使用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设备具有固定位置,但使用手机中的智能助理可以更改。在这种情况下,您每次都需要重新请求它。

显然,在很多情况下这是不可取的,团队意识到这种体验有多糟糕。什么时候没有承诺,但希望他们正在努力寻找更好的解决方案。