繁体   English   中英

Bot Framework v4 - 发起与用户的聊天(主动消息)

[英]Bot Framework v4 - initiate chat with a user ( proactive messages )

我想与用户开始对话,但他已经与机器人聊天。

当用户安装机器人应用程序时,我正在继续获取conversationId ID,如此处提到的

在这里,我如何使用processActivity事件捕获referenceserviceUrl

然后我使用continueConversation + reference

const {
    BotFrameworkAdapter,
} = require('botbuilder');
const adapter = new BotFrameworkAdapter({
    appId: "xxxx",
    appPassword: "xxxxy"
})
module.exports = async function(context, req) {
    console.log(adapter);
    try {

        adapter.processActivity(req, context.res, async (turnContext) => {
            const reference = turnContext.activity.conversation.id
            const serviceUrl = turnContext.activity.serviceUrl

            await adapter.continueConversation(reference, async (turnContext) => {
                try {
                    await turnContext.sendActivity("this is proacive message");

                } catch (e) {
                    console.log(e)
                }
            });

        });
    } catch (e) {
        console.log(e)
    }
    return;
};

我收到此错误

Error: BotFrameworkAdapter.sendActivity(): missing serviceUrl.

我检查了turnContext.activity的值。 我得到: {"type":"event","name":"continueConversation"}"所有其他值都未定义( serviceUrl 也是)

我注意到turnContext.activity中的adapter.continueConversation adapter.processActivity的不同,并且具有所有serviceUrlconversationId

如何编辑此代码示例以便能够向用户发送主动消息?

如果将 const 引用用于 BotFrameworkAdapter.continueConversation(),则 const 引用必须是 ConversationReference 而不仅仅是 Id。

可以使用以下方法检索 ConversationReference:

const reference = TurnContext.getConversationReference(turnContext.activity);

https://docs.microsoft.com/en-us/javascript/api/botbuilder/botframeworkadapter?view=botbuilder-ts-latest#continueconversation-partial-conversationreference----context--turncontext-----promise-空白 -

https://docs.microsoft.com/en-us/javascript/api/botbuilder-core/turncontext?view=botbuilder-ts-latest#getconversationreference-partial-activity--

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM