Node.js 基于用户位置的每日更新

Node.js 基于用户位置的每日更新,node.js,dialogflow-es,actions-on-google,Node.js,Dialogflow Es,Actions On Google,在使用dialogflow的Google Actions应用程序中,我正在设置每日更新,目标是根据用户位置提取数据。我假设要做到这一点,我需要向用户请求访问其位置信息的权限 以下哪种意图是询问用户位置的正确位置 //在这种情况下,请求用户访问其位置的最佳位置是什么? 功能定位用户(conv){ conv.ask(新权限)({ 上下文:“为了找到你”, 权限:“设备\u精确\u位置” })); } //初始调用:“我想要每日天气预报” 应用意图(‘每日天气更新’,(conv)=>{ conv.a

在使用dialogflow的Google Actions应用程序中,我正在设置每日更新,目标是根据用户位置提取数据。我假设要做到这一点,我需要向用户请求访问其位置信息的权限

以下哪种意图是询问用户位置的正确位置

//在这种情况下,请求用户访问其位置的最佳位置是什么?
功能定位用户(conv){
conv.ask(新权限)({
上下文:“为了找到你”,
权限:“设备\u精确\u位置”
}));
}
//初始调用:“我想要每日天气预报”
应用意图(‘每日天气更新’,(conv)=>{
conv.ask(新建议(“发送每日天气预报”);
});
app.intent('daily\u weather\u updates.update',(conv)=>{
const intent=conv.arguments.get('UPDATE_intent');
conv.ask(新注册表更新)({
意图:“获取每日天气”,
频率:“每日”
}));
});
app.intent('daily_weather_updates.finish',(conv,params,registered)=>{
如果(已注册和已注册状态=='OK'){
conv.close(`Ok,我开始给你每日更新。`);
}否则{
conv.close(`Ok,我不会给你每日更新。`);
}
});
app.intent('get_daily_weather',(conv)=>{
Weather.getDailyWeather()然后((响应)=>{
conv.close(应答);
});

});这取决于您认为用户想要什么天气。他们设置通知时所在的单个特定位置的天气,或他们确认通知时所在位置的天气

如果您希望在同一地点发生这种情况,您可能希望在以下两个地点之一进行:

  • 在触发“每日天气更新”意图之前
  • 作为对“每日天气更新.完成”意图的回应的一部分
您不希望在任何中间人处执行此操作,因为他们被问及与设置通知相关的问题。我倾向于第一个,因为如果他们拒绝许可,你不需要通过通知设置。在这两个处理程序中,您都希望存储返回的位置,因为它只在它们响应权限时向您发送信息

如果您希望在他们响应通知时在“当前”位置报告他们的天气,那么您将希望在处理程序中这样做,以便在他们确认通知时实现您设置的任何目的。目前,您将此设置设置为“获取每日天气”,但您需要一个不同的意图来请求许可,然后在获得许可后报告天气。在这种情况下,您将只保存会话的位置,因为您希望它会更改


请记住,除非你要求,否则助理不会告诉你位置。因此,如果您确实想在以后的对话中使用它(因为您只需要一次,或者您想在以后使用它作为默认设置),您需要存储它。

这取决于您认为用户需要什么天气。他们设置通知时所在的单个特定位置的天气,或他们确认通知时所在位置的天气

如果您希望在同一地点发生这种情况,您可能希望在以下两个地点之一进行:

  • 在触发“每日天气更新”意图之前
  • 作为对“每日天气更新.完成”意图的回应的一部分
您不希望在任何中间人处执行此操作,因为他们被问及与设置通知相关的问题。我倾向于第一个,因为如果他们拒绝许可,你不需要通过通知设置。在这两个处理程序中,您都希望存储返回的位置,因为它只在它们响应权限时向您发送信息

如果您希望在他们响应通知时在“当前”位置报告他们的天气,那么您将希望在处理程序中这样做,以便在他们确认通知时实现您设置的任何目的。目前,您将此设置设置为“获取每日天气”,但您需要一个不同的意图来请求许可,然后在获得许可后报告天气。在这种情况下,您将只保存会话的位置,因为您希望它会更改

请记住,除非你要求,否则助理不会告诉你位置。因此,如果您确实想在以后的对话中使用它(因为您只需要一次,或者您想在以后使用它作为默认设置),您需要存储它