如何使用快乐的nodejs框架对Google动作对话流进行整数化



我正在尝试创建一个简单的谷歌主页操作。我能够成功地在谷歌Firebase功能中尝试一些基本功能。但是当我尝试用快乐的框架做同样的事情时,我无法让它工作吗?当我尝试搜索时,我只能看到 Express 和 lambda 的框架?

我试图与快乐整合,但只得到了 500 作为回应。我也在粘贴它的片段

const { dialogflow } = require('actions-on-google')
const app = dialogflow({
    debug: true
})
const welcomeIntent = (conv) => {
    conv.contexts.set('previousintent', 1, { 'previousintent': 'welcomeIntent' })
    if (!conv.surface.capabilities.has('actions.capability.MEDIA_RESPONSE_AUDIO')) {
        conv.close('Sorry, this device does not support audio playback.')
        return
    }
    console.log('welcome intent')
    conv.ask('Welcome')
};
app.intent('Default Welcome Intent', welcomeIntent)
fulfillmentRoute.push({
    path: `${constants.V1_API_PATH}/vee/fulfillment`,
    method: 'POST',
    handler: app
})

这是一个快乐的例子,

const Hapi = require('@hapi/hapi');
const dialogflow = require('dialogflow');
const credentials = {
    client_email: process.env.GOOGLE_CLIENT_EMAIL,
    private_key: process.env.GOOGLE_PRIVATE_KEY,
};
const sessionClient = new dialogflow.SessionsClient(
    {
        projectId: process.env.GOOGLE_PROJECT_ID,
        credentials
    }
);
const init = async () => {
    const server = Hapi.server({
        port: 3000,
        host: 'localhost'
    });
    server.route({
        method: 'POST',
        path: '/',
        handler: async (request, h) => {
            const sessionID = "unique ID" // unique id
            const response = await sendTextQueryToDialogFlow(sessionID,request.payload.query)
            return response[0].queryResult;
        }
    });
    await server.start();
    console.log('Server running on %s', server.info.uri);
};

process.on('unhandledRejection', (err) => {
    console.log(err);
    process.exit(1);
});
init();
async function sendTextQueryToDialogFlow(sessionId, text, params = {}) {
    const sessionPath = sessionClient.sessionPath(config.GOOGLE_PROJECT_ID, sessionId);
    const request = {
        session: sessionPath,
        queryInput: {
            text: {
                text: text,
                languageCode: process.env.DF_LANGUAGE_CODE,
            },
        },
        queryParams: {
            payload: {
                data: params
            }
        }
    };
    return await sessionClient.detectIntent(request);
}

使用JSON数据向您的服务器发送POST请求,例如,

{ query:"hello" }

你会得到回应。

最新更新