[英]Bot Framework v4 - initiate chat with a user ( proactive messages )
我想与用户开始对话,但他已经与机器人聊天。
当用户安装机器人应用程序时,我正在继续获取conversationId
ID,如此处提到的
在这里,我如何使用processActivity
事件捕获reference
和serviceUrl
然后我使用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
的不同,并且具有所有serviceUrl
和conversationId
如何编辑此代码示例以便能够向用户发送主动消息?
如果将 const 引用用于 BotFrameworkAdapter.continueConversation(),则 const 引用必须是 ConversationReference 而不仅仅是 Id。
可以使用以下方法检索 ConversationReference:
const reference = TurnContext.getConversationReference(turnContext.activity);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.