Node.js 在package.json谷歌操作中使用自定义实体

Node.js 在package.json谷歌操作中使用自定义实体,node.js,actions-on-google,google-home,dialogflow-es,Node.js,Actions On Google,Google Home,Dialogflow Es,我在玩google actions。 我定义了一个自定义实体。 我想在我的package.json中匹配该实体: xports.answerColleague = functions.https.onRequest((request, response) => { const app = new App({request, response}); console.log('Request headers: ' + JSON.stringify(request.headers));

我在玩google actions。 我定义了一个自定义实体。 我想在我的package.json中匹配该实体:

xports.answerColleague = functions.https.onRequest((request, response) => {
  const app = new App({request, response});
  console.log('Request headers: ' + JSON.stringify(request.headers));
  console.log('Request body: ' + JSON.stringify(request.body));
  let profession = app.getArgument(PROFESSION_ARGUMENT);


// c. The function that generates the silly name
  function answerColleague (app) {
如何在此处使用自定义实体? 假设我定义了一个实体调用职业。 例如,我想检查profession==profession.DEVELOPER。 其中DEVELOPER是我在实体中添加的行之一。 如何访问这些值以验证用户选择的值

谢谢。

虽然变量profession将包含用户所说的内容,但客户端库目前不提供任何功能来访问可能值的枚举,例如profession.DEVELOPER

对于包含相对较短或静态项目列表的实体,我建议在webhook代码中硬编码一个对象,定义可能的值。只要物品不经常更换,维护起来就不会太困难。为了避免手工创建,您可以通过Dialogflow代理构建它,然后从生成的JSON中读取列表


如果您的实体中有一个非常长或动态的项目列表,您可能希望通过API访问它们并动态地构建一个列表。只有在物品频繁更换的情况下,这种额外的工程和维护才可能是值得的。您可以在dialogflow的entities(实体)菜单中查看有关如何通过API获取实体行的信息。

请澄清-您在哪里定义了自定义实体。单击按钮:添加实体