为什么永久存储无法在我的google操作中工作?

问题描述 投票:0回答:1

我正在尝试在各个会话中存储UserId,请遵循此处找到的参考:https://developers.google.com/assistant/conversational/save-data

这是我在代码中的实现:

'use strict';

const { dialogflow } = require("actions-on-google");
const functions = require("firebase-functions");
const app = dialogflow();

app.intent('Default Welcome Intent', (conv) => {

  conv.user.storage.userId = "bananas";
  console.log("Logging the conversation object... ");
  console.log(JSON.stringify(conv));
  conv.close("Goodbye! ");
});

exports.yourAction = functions.https.onRequest(app);

当我通过Google Home Hub调用该操作时,它将正确设置我的用户存储数据:

    "user": {
    "raw": {
        "locale": "en-US",
        "lastSeen": "2020-02-12T14:28:49Z",
        "userVerificationStatus": "VERIFIED"
    },
    "storage": {
        "userId": "bananas"
    },
    "locale": "en-US",
    "verification": "VERIFIED",
    "permissions": [],
    "last": {
        "seen": "2020-02-12T14:28:49.000Z"
    },
    "name": {},
    "entitlements": [],
    "access": {},
    "profile": {}
},

但是,当我在代码中注释掉存储分配并重新调用操作时,用户存储的内容不再存在:

"user": {
    "raw": {
        "locale": "en-US",
        "lastSeen": "2020-02-12T14:31:30Z",
        "userVerificationStatus": "VERIFIED"
    },
    "storage": {},
    "locale": "en-US",
    "verification": "VERIFIED",
    "permissions": [],
    "last": {
        "seen": "2020-02-12T14:31:30.000Z"
    },
    "name": {},
    "entitlements": [],
    "access": {},
    "profile": {}
},

我可以看到我的验证是“已验证”,因此不会是这个问题。我在此文档中注意到,如果出现以下情况,userStorage将清除:

  • 语音匹配已设置,没有匹配项。
  • 用户禁用了个人数据。

所以也许是其中之一-但是我不确定在哪里可以检查!

dialogflow actions-on-google
1个回答
0
投票

已修复。我没有启用Chrome历史记录设置!该线程更详细:actions on google userStorage only during session

© www.soinside.com 2019 - 2024. All rights reserved.