1
koa 프레임 워크로 google 액션을 사용하려고합니다. koa 미들웨어에서 AoG 생성자와 사용할 요청 및 응답을 이해할 수 없습니다. AoG 선교사 콘솔 시뮬레이터에 그것을 시도koa.js와 google-actions를 사용할 때 응답을 보내는 올바른 방법
const Koa = require('koa')
const koaBody = require('koa-body')
const { DialogflowApp } = require('actions-on-google')
const koaApp = new Koa()
koaApp.use(koaBody())
koaApp.use(async (ctx) => {
const googleAssistant = new DialogflowApp({request: ctx.request, response: ctx.response});
const body = ctx.request.body;
console.log(body)
if (!body.result) ctx.throw(400, 'wrong request')
...
const listItems = []
results.forEach((result, i) => {
listItems.push(
googleAssistant.buildOptionItem('Item'+(i+1))
.setTitle(result.title)
.setDescription(result.text)
)
})
const list = googleAssistant.buildList().addItems(listItems)
console.log('Response to Dialogflow (AoG): ' + JSON.stringify(list))
googleAssistant.askWithList('Here some results', list)
})
const PORT = process.env.PORT || 3000
koaApp.listen(PORT,() => {
console.log(`Listening on ${ PORT }`)
})
나는 다음과 같은 오류 얻을 :
이 내 코드는 내가 잘 작동하는 대신 .ask()
의 JSON 응답을 사용하는 경우
server error TypeError: this.response_.status is not a function
at DialogflowApp.doResponse_ (/home/zhuiks/myProject/node_modules/actions-on-google/assistant-app.js:2372:41)
at DialogflowApp.askWithList (/home/zhuiks/myProject/node_modules/actions-on-google/dialogflow-app.js:620:17)
at setGoogleResponse (/home/zhuiks/myProject/app.js:73:25)
at koaApp.use (/home/zhuiks/myProject/app.js:88:9)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:169:7)
합니다. AoG 요청의 경우 Dialogflow 이행을위한 전체 json 응답 형식에 대해 잘 모르겠습니다.
AoG 용 클라이언트 라이브러리를 사용하고 싶지 않은 경우 Google Assistant [Dialogflow.ai fulfillment] (https://dialogflow.com/docs/fulfillment)의 응답 형식은 어떻게해야합니까? – zhuiks
성취 응답의 '데이터'부분을 사용하여 JSON의 data.google 요소의 richResponse 속성에서 Google 특정 시각적 요소 항목을 보낼 수 있습니다 (https://developers.google.com/actions/dialogflow 참조)./webhook # response –