Facebook Messenger 集成 - 机器人不提供回复
Facebook messenger integration - bot does not provide the responses
我已将 Dialogflow 与 Facebook Messenger 集成
一体化。我已按照 dialogflow 文档中的步骤进行操作。
我没有从 Messenger 收到任何输出/消息。
我曾使用 conv.ask()
来响应 Intents,这是问题所在吗?
我需要更新操作中的表面功能部分吗?
'use strict';
// Import the Dialogflow module and response creation dependencies
// from the Actions on Google client library.
const {
dialogflow,
BasicCard,
} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
const swamiMessages = require('./messages');
const swamiQuotes =require('./quotes');
// Intent Mapping
//INTENT: 'Default Welcome Intent'.
app.intent('Default Welcome Intent', (conv) => {
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Do you want to hear an Inspiring <break/> Quote or a Message from Swami <break/> Sukhabodhananda ` +
`Do you want to know about Prasanna Trust <break/>`+
//`Do you want to know about the upcoming programs` +
` </emphasis> </speak>`);
});
//INTENT: 'quote'
//Should get triggered when the user request for an inspiring thought
// asks for motivation
app.intent('quote', (conv) => {
// when the welcome intent is triggered recite a random quote
//let quoteNumber= getRandomInt(5);
//let quote = quotes[quoteNumber].quote; //
let quote =swamiQuotes.getQuote();
if (quote) {
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Let us hear an Inspiring quote \n` +
`<break strength="strong"> </break> `+
`${quote}` +
`<break strength="strong"> </break> `+
`\nDo you want to hear another quote or message ` +
` </emphasis> </speak>`);
} else
{
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Let us hear an Inspiring quote ` +
`<break strength="strong"> </break> `+
`quotes` +
`\nDo you want to hear another quote or message ` +
` </emphasis> </speak>`);
}
});
// INTENT: message
//Should get triggered when the user request for an inspiring message
app.intent('message', (conv) => {
// when the welcome intent is triggered recite a random message
let message =swamiMessages.getMessage();
//let formattedMessage=swamiMessages.formattedMessage(message);
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Let us hear an Inspiring Message ` +
`<break strength="strong"> </break> `+
`${message}`+
`\nDo you want to hear another quote or message ` +
` </emphasis> </speak>`);
});
更新
如果我进行更改以使用 dialogflow-fulfillment 库,我该如何添加两个默认处理程序函数 - 一个用于 Google 上的操作,一个用于其他集成?我在做类似
的事情
intentMap.set(null, googleAssistantOther);
intentMap.set(null, other);
//In place of null should i update the Intent Name and
// googleAssitantOther and other are callback functions.
您表示您正在尝试将其与 Facebook 集成,但您使用的是 actions-on-google 库,该库专为响应 Google 智能助理的消息而定制.
如果您想编写既响应 Google 助理又响应 Dialogflow 支持的其他平台的代码,您可能需要查看 dialogflow-fulfillment library。
您无需在操作控制台上对表面配置进行任何操作。
更新
您可以使用相同的 Intent 定义 - 这是针对多个平台进行开发的一个重要方面。许多事情(例如文本)在两者之间的工作方式完全相同。对于某些事情(例如想要添加一些 RichResponse 对象),您可能需要使用
等代码检查您 运行 在哪个平台上
if (agent.requestSource === agent.ACTIONS_ON_GOOGLE) {
intentMap.set(null, googleAssistantOther);
} else {
intentMap.set(null, other);
}
我已将 Dialogflow 与 Facebook Messenger 集成 一体化。我已按照 dialogflow 文档中的步骤进行操作。
我没有从 Messenger 收到任何输出/消息。
我曾使用 conv.ask()
来响应 Intents,这是问题所在吗?
我需要更新操作中的表面功能部分吗?
'use strict';
// Import the Dialogflow module and response creation dependencies
// from the Actions on Google client library.
const {
dialogflow,
BasicCard,
} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
const swamiMessages = require('./messages');
const swamiQuotes =require('./quotes');
// Intent Mapping
//INTENT: 'Default Welcome Intent'.
app.intent('Default Welcome Intent', (conv) => {
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Do you want to hear an Inspiring <break/> Quote or a Message from Swami <break/> Sukhabodhananda ` +
`Do you want to know about Prasanna Trust <break/>`+
//`Do you want to know about the upcoming programs` +
` </emphasis> </speak>`);
});
//INTENT: 'quote'
//Should get triggered when the user request for an inspiring thought
// asks for motivation
app.intent('quote', (conv) => {
// when the welcome intent is triggered recite a random quote
//let quoteNumber= getRandomInt(5);
//let quote = quotes[quoteNumber].quote; //
let quote =swamiQuotes.getQuote();
if (quote) {
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Let us hear an Inspiring quote \n` +
`<break strength="strong"> </break> `+
`${quote}` +
`<break strength="strong"> </break> `+
`\nDo you want to hear another quote or message ` +
` </emphasis> </speak>`);
} else
{
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Let us hear an Inspiring quote ` +
`<break strength="strong"> </break> `+
`quotes` +
`\nDo you want to hear another quote or message ` +
` </emphasis> </speak>`);
}
});
// INTENT: message
//Should get triggered when the user request for an inspiring message
app.intent('message', (conv) => {
// when the welcome intent is triggered recite a random message
let message =swamiMessages.getMessage();
//let formattedMessage=swamiMessages.formattedMessage(message);
conv.ask(
`<speak> <emphasis level="moderate" > `+
`Let us hear an Inspiring Message ` +
`<break strength="strong"> </break> `+
`${message}`+
`\nDo you want to hear another quote or message ` +
` </emphasis> </speak>`);
});
更新
如果我进行更改以使用 dialogflow-fulfillment 库,我该如何添加两个默认处理程序函数 - 一个用于 Google 上的操作,一个用于其他集成?我在做类似
的事情intentMap.set(null, googleAssistantOther);
intentMap.set(null, other);
//In place of null should i update the Intent Name and
// googleAssitantOther and other are callback functions.
您表示您正在尝试将其与 Facebook 集成,但您使用的是 actions-on-google 库,该库专为响应 Google 智能助理的消息而定制.
如果您想编写既响应 Google 助理又响应 Dialogflow 支持的其他平台的代码,您可能需要查看 dialogflow-fulfillment library。
您无需在操作控制台上对表面配置进行任何操作。
更新
您可以使用相同的 Intent 定义 - 这是针对多个平台进行开发的一个重要方面。许多事情(例如文本)在两者之间的工作方式完全相同。对于某些事情(例如想要添加一些 RichResponse 对象),您可能需要使用
等代码检查您 运行 在哪个平台上if (agent.requestSource === agent.ACTIONS_ON_GOOGLE) {
intentMap.set(null, googleAssistantOther);
} else {
intentMap.set(null, other);
}