我从v1 =>迁移我的Google操作v2使用快速应用程序,在过去,我已经能够获得url params&像这样初始化我的行动地图:
// 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,而不是使用带有快递的.post
路线,我只需要使用.use
,例如express().use(bodyParser.json(), app)
。但是,我不明白如何使用这种方法[身体解析器来获取身体参数(req / res)] [仍然是一种节点新手]来自身体解析器。
我需要来自请求的完整网址路径(类型,平台,发布商),以便稍后在各种意图中完成某些应用逻辑。
如果某人有更多内置的express / v2 Dialogflow示例,那将非常有帮助。我所有这一切都与v1一起工作,但时间变了!
答案 0 :(得分:1)
您现在应该能够使用2.2.0
中添加的新框架元数据功能来获取此数据。有关更多详细信息,请参见此GitHub comment。
现在,包含框架元数据的对象作为中间件功能中的第二个参数出现。
现在您可以执行以下操作:
app.middleware((conv, framework) => {
if (framework.express) {
conv.expressParams = framework.express.request.expressParams;
}
});
app.intent('some intent', conv => {
conv.ask(`Params sent was ${JSON.stringify(conv.expressParams)}`);
});
答案 1 :(得分:0)
来自this GitHub issue中的类似问题:
您可以从
conv.request
检索原始JSON数据,以获取有关Google数据的核心操作,并conv.body
检索整个JSON正文。