我正在尝试创建一个简单的谷歌主页操作。我能够成功地在谷歌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" }
你会得到回应。