Dialogflow es 如何使用Dialogflow实现媒体响应

Dialogflow es 如何使用Dialogflow实现媒体响应,dialogflow-es,actions-on-google,google-home,Dialogflow Es,Actions On Google,Google Home,我正在使用Dialogflow,希望在我的项目中实现媒体响应。我曾尝试使用以下链接进行此操作:但未成功。如何实施 const functions = require('firebase-functions') const {dialogflow} = require('actions-on-google') const TEST = 'test' const app = dialogflow({ debug: true, }) app.intent('test', (conv) =

我正在使用Dialogflow,希望在我的项目中实现媒体响应。我曾尝试使用以下链接进行此操作:但未成功。如何实施

const functions = require('firebase-functions')
const {dialogflow} = require('actions-on-google')

const TEST = 'test'

const app = dialogflow({
    debug: true,
})

app.intent('test', (conv) =>{
    conv.ask('we will now play a song for you');

    conv.ask(new MediaObject({
        name: 'Jazz in Paris',
        url: 'https://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3',
    }));
    conv.ask(new MediaResponse({
        mediaObject: 'Jazz in Paris',
        mediaType: AUDIO,
    }));
});


exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)

您只需添加
MediaObject
。您不需要添加
MediaResponse
对象,因为库将为您添加它

但是,您需要确保在调用
require()
时加载
MediaObject
对象。您还需要加载
建议
对象,因为如果用户选择中断您的音频,您需要提供建议以推进对话

因此,您的代码可以如下所示:

const functions = require('firebase-functions')
const {
  dialogflow,
  MediaObject,
  Suggestions
} = require('actions-on-google')

const app = dialogflow({
    debug: true,
})

app.intent('test', (conv) =>{
    conv.ask('we will now play a song for you');

    conv.ask(new MediaObject({
        name: 'Jazz in Paris',
        url: 'https://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3',
    }));

    conv.ask(new Suggestions(['suggestion 1', 'suggestion 2']));

});


exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)

当你说你“不成功”时,你试过什么?你写过代码吗?如果是这样,你能用你尝试过的代码更新你的问题吗?到目前为止,我已经上传了我代码的图片。请不要使用图片,因为它确实很难阅读,来重现你可能遇到的任何问题,并将其用作示例的基础。请将文本复制并粘贴到StackOverflow问题中,并格式化它(请参阅),您说您不知道如何“启动”响应。你是什么意思?我制作了一个媒体对象和一个媒体响应(我不知道这些是否正确初始化)。但是现在我想要我的意图是播放媒体响应中的媒体对象,我不确定如何做到这一点。谢谢!我已经更改了建议,但现在调用意图时出现以下错误:“错误的响应预期的\u输入[0]。输入\u提示。丰富的\u初始\u提示:如果使用媒体\u响应,则必须提供建议…”答案已更新。正如错误信息所说,如果用户希望中断音频,您需要加入建议芯片来推进对话。太棒了!如果一个答案有帮助,接受和/或向上投票总是很受欢迎的。我最近在我实际的Google Home设备上试用了这一功能,由于某种原因,当我说热门词时,设备不会接受它。然而,当我在模拟器中写出响应时,它工作了。关于为什么会发生这种情况,有什么建议吗?我实现的代码与上面的代码相同。不是随便的,但听起来与代码没有特别的关系。我会问一个新的问题,尽可能多地提供具体细节。