permissions - 在 Actions on Google 应用中跨对话保存授予的权限

标签 permissions actions-on-google

我在 Google 应用程序上编程操作,我请求用户许可。一切正常。现在我想在他的第一次对话中征求用户的许可。当他第二次开始对话时, Action 应用程序应该记住该用户之前在对话中授予了权限。因此,当我每次开始对话时用户不必接受许可时,它会更舒服。有没有办法使这成为可能?

最佳答案

简短的回答:你不能。

但是,对于某些事情,您不一定需要这样做。例如,如果您询问他们的姓名 - 它可能不会改变,因此您可以第一次询问,然后缓存答案。

如果您使用的是 node.js 库,则可以通过将信息添加到 app.userStorage 来轻松完成此操作。目的。这将在 session 之间为您保存。所以你的代码可能看起来像这样:

var userName = app.userStorage.userName;
if( !userName ){
  if( app.isPermissionGranted() ){
    userName = app.userStorage.userName = app.getUser().displayName;
  } else {
    requestPermission();
  }
}

(我还没有测试过这个,它看起来大致正确。)

如果您正在请求位置,这可能是也可能不是一个好的解决方案。尽管 Google Home 设备具有固定位置,但通过手机使用智能助理可能会发生变化。在这种情况下,您每次都需要重新请求它。

很明显,这在很多情况下都是不可取的,团队也知道这是多么糟糕的体验。没有 promise 何时,但希望他们正在研究更好的解决方案。

关于permissions - 在 Actions on Google 应用中跨对话保存授予的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486887/

相关文章:

android - 尽管已授予权限,但仍获得安全异常

c - seteuid/geteuid : Program always has root id

node.js - 除了语音输入之外,如何培养使用 Google Home 的技能?

c# - 如何使用 C# 代码授予用户启动和停止特定服务的权限

php - 如何测试 Windows 上的文件是否可以从 PHP 中删除?

c# - 文件系统路径和 Directory.Exists()

具有自定义查询模式的 Android 应用程序操作

node.js - Google 上的 Actions AskForNewSurface 未切换

javascript - 获取原始参数输入 - Dialogflow Fulfillment

android - {@url} 在 actions.xml 应用操作 URL 模板中有什么用?