我可以通过 google 助手设置和访问用户首选项吗

Can I set and access user preference from google assistant

我有一个我创建的动作,我认为它对某个社区有很大的价值。问题是我使用 URL 和 API 键访问 API。效果很好,但是每个用户都有自己独特的 URL 和 APIKey。

有什么方法可以为每个用户设置和使用个性化设置吗?最好把这些值放在他们自己的google帐户上,在那里操作可以访问这些值,但我不能。

我能想到的唯一其他选择就是简单地共享我的代码,进行定制,但我认为 google 目前还不支持私人助理。

如果您只是想为用户存储简单的数据,您可以使用 user storage 为用户保留一个 JSON 对象。

function simpleResponse(conv) {
  conv.user.storage.count = 1;
  conv.ask(new SimpleResponse({
    speech: 'Howdy! I can tell you fun facts about ' +
      'almost any number, like 42. What do you have in mind?',
    text: 'Howdy! I can tell you fun facts about almost any ' +
      'number. What do you have in mind?',
  }));
}

如果您希望使用 Firebase,如您的标签所示,您可以为每个用户生成一个唯一的 ID,并将该 ID 保存到用户存储中。之后,您可以使用该密钥作为在数据库中查找数据的方式。

conv.user.storage.firebaseKey = '123';
firebase.database().ref('/data/123').once('value').then((snapshot) => {
  let data = snapshot.val().myData;
});

我成功了。我是这样做的。仍然欢迎反馈。

const parameters = request.body.queryResult.parameters;

function setKey(agent) {
  conv.user.storage.apiKey = parameters.APIKey;
  conv.ask('Ok, saving ' + parameters.APIKey);
  agent.add(conv);
}

function getKey(agent) {
  agent.add(`Your current key is ` + conv.user.storage.apiKey);
}