Есть ли анонимный идентификатор в Действиях в Google с Dialogflow? - PullRequest
0 голосов
/ 23 сентября 2019

Есть ли в Действиях в Google с помощью Dialogflow анонимный идентификатор, к которому я могу получить доступ с помощью DialogFlow в Node.js?

Мне не нужно знать учетную запись Google о том, кто использует Действие, но яЯ хочу иметь уникальный идентификатор, чтобы Действие могло знать, когда они вернутся.

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Первоначальная идея от Google состояла в том, чтобы использовать поле с именем userStorage, но эта функция, похоже, работает как банкомат.

userStorage Документация: https://developers.google.com/actions/assistant/save-data

Тема Reddit по вопросам: https://www.reddit.com/r/GoogleAssistantDev/comments/d88z7e/userstorage_saga_continued/

Если что-то не изменилось (я не проверял userStorage, так как занимался исправлением ситуации), вам может не повезти без привязки аккаунта.Не стесняйтесь попробовать userStorage и будьте честны со мной, так как они могли бы исправить ситуацию внутренне.

В качестве альтернативы, если все, что вам нужно, это идентификатор или сеанс для одного разговора, вы можете использовать идентификатор разговора, который будет уникальным доразговор заканчивается.

0 голосов
/ 24 сентября 2019

Я нашел возможную опцию ...

(При работе в DialogFlow в Node.js большая часть кода находится в обработчике, и параметр обычно называется conv.предполагается, что он находится внутри такого обработчика.)

При каждом отдельном вызове проверяйте «существующий» идентификатор в данных сеанса и хранилище пользователя:

var id = conv.data.MyId || conv.user.storage.MyId || '';

if(!id) {
  id = /* make a new Id for this user... a GUID or some other unique id */
  conv.user.storage.MyId = id;
}

Один разЯ получаю Id из хранилища или создаю новый, очень важно переназначить его на conv.data, так как conv.user.storage кажется надежно предоставленным только при первом вызове!

// IMPORTANT
conv.data.MyId = id;

/* use the Id as needed */

Мой код выглядитвверх по идентификатору в базе данных Firebase, чтобы узнать подробности их последнего посещения.

Кажется, это работает, но может быть ненадежным.

0 голосов
/ 23 сентября 2019

Google больше не предоставляет один для вас.Вам нужно будет сгенерировать его, когда новый пользователь взаимодействует с вашим веб-крючком, и сохранить сгенерированный идентификатор в своем пользовательском объекте хранения.

Чтобы идентифицировать нового пользователя, просто проверьте, есть ли у него уже идентификатор в его пользовательском объекте хранения.Для генерации идентификатора вы можете использовать библиотеку вроде uuid.https://www.npmjs.com/package/uuid

Uuidv4, вероятно, тот, который вам нужен, если вам просто нужен уникальный идентификатор для простой идентификации

...