与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
});
答案 0 :(得分:6)
匿名用户身份has been deprecated将于2019年6月1日(一年后)正式删除。因此,您的代码段将失败。
修复程序取决于您使用id的具体方式和原因,但是对于最基本的需求,您可以执行以下操作:
检查您是否在userStore中存储了ID。如果你有 - 使用此ID。
如果还没有,生成一个id(生成一个UUID是一个很好的方法),使用它作为你的id,并将其存储在userStore中以供将来参考。
执行此操作的代码可能如下所示:
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应该被引用。