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

时间:2018-12-18 14:57:51

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

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

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

像这样的事情是我的想法:

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

1 个答案:

答案 0 :(得分:2)

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

但是,在某些情况下,您仅可以存储位置。但是,在进行此操作之前,您需要考虑一些事项:

  • 在法律上,这可能被视为个人或敏感信息。请查看计划您的操作可用的法律,以查看是否法律上允许您存储用户的位置或您可能需要如何处理它。
    • 如果是这样,您可以将位置存储在用户存储中,这使他们可以根据需要控制删除位置。
  • 如果您希望他们通过移动设备询问位置并且他们经常走动,则可能不希望这样做。
    • 有多种方法可以解决此问题,例如假定其固定位置,但允许他们选择其“当前”位置,在这种情况下,您可以重新提示获得许可。