【发布时间】:2020-06-10 19:05:43
【问题描述】:
我想在用户尚未与机器人聊天的情况下与他开始对话。
当用户将机器人应用程序安装为mentionned here 时,我正在继续获取conversationId
这里我如何使用 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.activityinside adapter.processActivity 与adapter.continueConversation 不同,并且拥有所有serviceUrl 和conversationId
如何编辑此代码示例以向用户发送主动消息?
【问题讨论】:
标签: javascript azure botframework azure-bot-service