Botframework 如何在bot首次启动时实现欢迎活动-NLP来自Google Dialogflow

Botframework 如何在bot首次启动时实现欢迎活动-NLP来自Google Dialogflow,botframework,dialogflow-es,direct-line-botframework,dialogflow-es-fulfillment,Botframework,Dialogflow Es,Direct Line Botframework,Dialogflow Es Fulfillment,如何在机器人第一次启动时实现欢迎活动-NLP来自Google Dialogflow 我从Google Dialogflow设计了chatbot-intent、entities和NLP,并成功地将botframework webchat集成到url上的html文件中 机器人的设计和反应都很好。我最期待的是,我没有首先得到机器人的响应 GoogleDialogFlow的欢迎意图必须根据上面给出的链接从以下代码中获取触发器 但我无法在这里首先触发机器人 如何从中触发Google Dialogflow事

如何在机器人第一次启动时实现欢迎活动-NLP来自Google Dialogflow

我从Google Dialogflow设计了chatbot-intent、entities和NLP,并成功地将botframework webchat集成到url上的html文件中

机器人的设计和反应都很好。我最期待的是,我没有首先得到机器人的响应

GoogleDialogFlow的欢迎意图必须根据上面给出的链接从以下代码中获取触发器

但我无法在这里首先触发机器人

如何从中触发Google Dialogflow事件

我期待着同样的结果


注意:当用户加入WebChat时,一个会话更新活动将被发送到bot。收到活动后,您可以检查是否添加了成员,并相应地发送欢迎消息

如果您使用的是v4.3中发布的活动处理程序,那么只需添加一个onMembersAdded处理程序并从那里发送欢迎消息即可

class Bot extends ActivityHandler{

    constructor() {
        super();

        this.onMembersAdded(async (context, next) => {
            const { membersAdded } = context.activity;

            for (let member of membersAdded) {
                if (member.id !== context.activity.recipient.id) {
                   await context.sendActivity("Welcome Message!");
                }
            }
            await next();
        });

        ...
    }
}
如果未使用活动处理程序,则可以在bot的onTurn方法中检查传入的活动处理程序是否是会话更新,以及是否已添加成员

async onTurn(turnContext) {
    if (turnContext.activity.type === ActivityTypes.ConversationUpdate) {
        if (turnContext.activity.membersAdded && turnContext.activity.membersAdded.length > 0) {
            for (let member of turnContext.activity.membersAdded) {
                if (member.id !== turnContext.activity.recipient.id) {
                     await turnContext.sendActivity("Welcome Message!");
                }
            }
        }
    } ...
}
有关发送欢迎信息的更多详细信息,请查看此


希望这有帮助

嘿,你提到了ActivityHandler。我在谷歌上搜索了一下,确实找到了任何参考资料。你能提供一个链接吗?文档有点稀疏啊!你从MS Botkit打电话给dialogflow只是为了NLP?我相信这就是@MRANKHAN K正在做的,是的。是的@tdurnford。。正确,但是我已经从dialogflow处理了触发事件的html页面中的所有内容。而是调用我从Botframework调用dialogflow的意图训练短语文本的事件。。我还隐藏了我们在UI中触发bot的文本消息。。最后,看起来我们有了从botframework到Dialogflow NLP的触发器事件。看起来您收到了一个很好的答案。有关如何从webhook添加事件的DialogFlow文档位于以下位置:。