Actions on google 使用V2 Dialogflow中的express获取正文请求参数
我正在使用express应用程序从v1=>v2迁移我的Google操作,在过去,我能够获取url参数并初始化我的操作图,如下所示: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
// 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对象中的任何位置都看不到这些键