Actions on google 如何使用actions.intent.DATETIME?

Actions on google 如何使用actions.intent.DATETIME?,actions-on-google,Actions On Google,文档中对其进行了“明确”定义,但我找不到如何使用actions.intent.DATETIME的示例 请举例说明“action.json”文件中需要什么,以及我的代码如何使用assistantSDK助手获取提供的日期和时间。我还没有弄清楚如何使用actions.intent.\u_ 在最简单的层面上,我希望我的代码知道这个人是早上还是晚上,因为我需要在每种情况下提供不同的信息。有人可能想这样做来回答“早上好”或“晚上好” 关于意图,在更复杂的层面上,我还想知道它们的大致位置(lat/long)。

文档中对其进行了“明确”定义,但我找不到如何使用
actions.intent.DATETIME
的示例

请举例说明“action.json”文件中需要什么,以及我的代码如何使用
assistant
SDK助手获取提供的日期和时间。我还没有弄清楚如何使用
actions.intent.\u_

在最简单的层面上,我希望我的代码知道这个人是早上还是晚上,因为我需要在每种情况下提供不同的信息。有人可能想这样做来回答“早上好”或“晚上好”

关于意图,在更复杂的层面上,我还想知道它们的大致位置(lat/long)。我想,一旦我知道如何使用DATETIME,我就能够应用相同的代码模式来使用
getDeviceLocation


有一些代码使用DATETIME意图,但它会随时询问用户。我只想知道他们当前的时间是什么。

可以使用我们数据库中ActionsSdkApp类的
askForDateTime()
方法调用DateTime意图。只需从意图调用该方法,并向其传递一些澄清提示的查询。然后使用侦听器侦听
actions.intent.DATETIME
intent的响应,就像侦听
actions.intent.TEXT
intent一样

actions.intent.DATETIME
intent的处理程序中,可以使用
getDateTime()
方法检索数据。不幸的是,这种意图只能通过要求用户提供一个确切的日期和时间来实现,而且它是一个通用的日期和时间,因此不能保证它是用户的当前日期时间,除非您以一种引导用户实现该目的的方式构造提示

const app = new ActionsSdkApp({ request, response });

function welcomeIntent (app) {
  app.askForDateTime('When do you want to come in?',
    Which date works best for you?',
    'What time of day works best for you?');
}

function datetime (app) {
  app.tell({speech: 'Great see you at your appointment!',
    displayText: 'Great, we will see you on '
    + app.getDateTime().date.month
    + '/' + app.getDateTime().date.day
    + ' at ' + app.getDateTime().time.hours
    + (app.getDateTime().time.minutes || '')});
}

const actionMap = new Map();
actionMap.set(app.StandardIntents.MAIN, welcomeIntent);
actionMap.set(app.StandardIntents.DATETIME, datetime);
app.handleRequest(actionMap);
正如您所提到的,您可以以类似的方式调用和处理
actions.intent.PERMISSION
intent,以获得精确的经度和纬度位置


作为补充说明,如果您使用的是API.AI,则可以使用其日期和时间系统实体来完成此操作,或者使用客户端库中APIAApp类中的askForDateTime()方法。

您可以在应用程序JSON或其他开放源代码中使用maps API位置/时间。就位置而言,它是特定于设备和用户设置的,因此,您是否从设备/用户获得JSNODE响应取决于用户,即使他们正在运行应用程序,有不同的设置首选项。

有没有办法在不口头要求用户提供的情况下获取用户的当前时间?不幸的是,您只能直接询问他们,或者使用权限意图获取位置并将其映射到后端的某个时间。因此,我可以在没有口头交互的情况下获取他们的位置,但不是他们现在的时间?这在我看过的文件中并不清楚。模拟器中显示的请求包括“位置”,但我的node.js代码没有得到。要清楚,权限意图将触发一个对话框,在该对话框中,用户被要求获得与您共享其位置(或名称,如果您愿意)的权限。在datetime意图中可能只询问日期