Могу ли я установить и получить доступ к предпочтениям пользователя из помощника Google - PullRequest
0 голосов
/ 03 июня 2018

У меня есть созданное мною действие, которое, я думаю, будет иметь большую ценность для определенного сообщества.Суть в том, что я получаю доступ к API, используя URL и APIKey.Это прекрасно работает, однако у каждого пользователя будет свой уникальный URL и APIKey.

Есть ли способ настроить и использовать индивидуальные настройки для каждого пользователя?Было бы лучше поместить эти значения в их собственную учетную запись Google, где действие может получить доступ к этим значениям, но я не могу.

Единственный другой вариант, который я могу подумать, если это просто поделиться своим кодом, для настройки, но я не думаю, что Google пока поддерживает частных помощников.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Я получил это работает.Вот как я это сделал.Обратная связь все еще приветствуется.

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);
}
0 голосов
/ 04 июня 2018

Если вы просто хотите сохранить простые данные для пользователя, вы можете использовать пользовательское хранилище , которое сохраняет объект 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, как указано в ваших тегах, вы можете сгенерировать уникальный идентификатор для каждого пользователя и сохранить этот идентификатор в хранилище пользователя.После этого вы можете использовать этот ключ для поиска данных в вашей базе данных.

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