在 Dialogflow 中存储用户位置首选项

Store User Location Preference in Dialogflow

我现在有一个需要用户位置的意图 - 每次触发此意图时,它都会提示用户访问他们的位置。虽然我理解这背后的原因 - 这对最终用户来说有点麻烦和令人沮丧 - 他们一天可能会使用此 Intent 10 次或更多次。

问题: 我可以存储用户的位置权限/偏好以备后用,还是每次都需要征求他们的许可?

我的想法是这样的:

app.intent('user_locate', (conv, params, granted) => {
    return new Promise(function (resolve, reject) {
        if (granted) {
          conv.user.storage.location = granted;
        }
    });
});

您不能存储他们已授予您访问其位置的权限。每个位置请求都必须得到用户的批准。

但是,在某些情况下,您可以只存储位置。但是,在这样做之前您应该考虑一些事项:

  • 从法律上讲,这可能被视为个人信息或敏感信息。查阅你计划在何处提供你的 Action 的法律,看看你是否在法律上被允许存储用户的位置或你可能需要如何处理它。
    • 如果是这样,您可以将位置存储在用户存储中,这样他们就可以根据需要控制删除它。
  • 如果您希望他们通过移动设备询问位置并且他们经常四处走动,则可能不希望这样做。
    • 有一些方法可以解决这个问题,比如假设他们的位置是固定的,但允许他们选择他们的 "current" 位置,在这种情况下你可以重新提示权限。