DialogFlow conv.user.id已弃用 - 有何影响?

时间:2018-06-01 09:46:08

标签: node.js actions-on-google dialogflow

DialogFlow V2 user id?类似,我使用来自conv.user.id(dialogflow v2)的用户ID到(匿名)确定我的Dialogflow应用程序中的用户。但是,我收到了日志消息:

 conv.user.id is *DEPRECATED*: Use conv.user.storage to store data instead 

这是否意味着我(很快)将无法再访问用户ID?我知道我可以在conv.user.storage中存储数据,但我需要id - 而不是存储。

有关如何安全失败的想法?

//代码段:

app.intent('Default Welcome Intent', conv => {
  var userID = conv.user.id;
  // do something
});

1 个答案:

答案 0 :(得分:6)

匿名用户身份has been deprecated将于2019年6月1日(一年后)正式删除。因此,您的代码段将失败。

修复程序取决于您使用id的具体方式和原因,但是对于最基本的需求,您可以执行以下操作:

  1. 检查您是否在userStore中存储了ID。如果你有 - 使用此ID。

  2. 如果还没有,生成一个id(生成一个UUID是一个很好的方法),使用它作为你的id,并将其存储在userStore中以供将来参考。

  3. 执行此操作的代码可能如下所示:

    if ('userId' in conv.user.storage) {
      userId = conv.user.storage.userId;
    } else {
      // generateUUID is your function to generate ids.
      userId = generateUUID();
      conv.user.storage.userId = userId
    }
    

    或者,您可能希望只使用Google Sign-In for the Assistant来获取Google用户ID。

    修改 条件中的userId应该被引用。