Actions on google 使用V2 Dialogflow中的express获取正文请求参数

Actions on google 使用V2 Dialogflow中的express获取正文请求参数,actions-on-google,Actions On Google,我正在使用express应用程序从v1=>v2迁移我的Google操作,在过去,我能够获取url参数并初始化我的操作图,如下所示: // INITIALIZE EXPRESS APPLICATION & ENDPOINTS app.use(bodyParser.json({strict: false})); // POST [TYPE] [PLATFORM] [PUBLISHER] PARAMS => PASS TO FULFILLMENT app.post('/:platfor

我正在使用express应用程序从v1=>v2迁移我的Google操作,在过去,我能够获取url参数并初始化我的操作图,如下所示:

// INITIALIZE EXPRESS APPLICATION & ENDPOINTS
app.use(bodyParser.json({strict: false}));

// POST [TYPE] [PLATFORM] [PUBLISHER] PARAMS => PASS TO FULFILLMENT
app.post('/:platform/:type/:publisher', function(req, res) {
  debugRequest(req);
  console.log(`SENDING TO ${TYPE} => ${PLATFORM} => ${PUBLISHER} FULFILLMENT`);
  fulfillment.fulfillment(req, res);
});
```

对于v2,我不需要在express中使用
.post
路由,只需要使用
。使用
例如
express()。使用(bodyParser.json(),app)
。但是,我不明白如何使用这个方法从body解析器获取body参数(req/res)

我需要请求中的完整URL路径(类型、平台、发布者),以便稍后在各种意图中实现一些应用程序逻辑


如果有人有一个更内置的express/v2 Dialogflow示例,那将非常有用。我有所有这些与v1的工作,但时间是一个不断变化的

来自以下类似问题:

您可以从
conv.request
中检索Google数据上的核心操作的原始JSON数据,并从
conv.body
中检索整个JSON正文的原始JSON数据


通过在
2.2.0
中添加新的框架元数据功能,您现在应该能够获取这些数据。有关更多详细信息,请参见此

包含框架元数据的对象现在作为中间件函数中的第二个参数出现

现在,您可以执行以下操作:

app.middleware((conv,framework)=>{
if(framework.express){
conv.expressParams=framework.express.request.expressParams;
}
});
app.intent('some intent',conv=>{
conv.ask(`Params sent是${JSON.stringify(conv.expressParams)}`);
});

是,
conv.request
conv.body
确实包含大量数据,但不包含完整的URL/路径。例如,我应该能够获取路径参数/:type/:platform等,但我在conv对象中的任何位置都看不到这些键