gpt4 book ai didi

javascript - Microsoft Bot Framework 无需用户与机器人对话即可发送消息

转载 作者:行者123 更新时间:2023-11-29 20:31:07 25 4
gpt4 key购买 nike

我需要使用 Javascript 让机器人每十分钟发送一条消息。我正在使用 Microsoft Bot Framework,这是入口代码:

const restify = require('restify');
const botbuilder = require('botbuilder');

var adapter = new botbuilder.BotFrameworkAdapter({
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword
});

let server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log(`\n${server.name} listening to ${server.url}`);
console.log(`\nGet Bot Framework Emulator: https://aka.ms/botframework-emulator`);
});

server.post('/api/messages', (req, res) => {
adapter.processActivity(req, res, async (turnContext) => {
if (turnContext.activity.type === 'message') {
const text = turnContext.activity.text;
await turnContext.sendActivity(`You just said: ${ text }`);
}
});
});

基本上,无论与机器人交谈的人说什么,它都会以“你刚刚说:x”来回应。

我需要的是在 Skype 中加入群组并每十分钟发送一条消息的机器人。

但是,在我的示例中,服务器等待到/api/messages 的 POST,然后它使用适配器来处理该请求并从来自 processActivity 方法的 turnContext 触发“sendActivity”方法。

我怎样才能以固定的时间间隔发送消息,并忽略所有消息/提及。

最佳答案

你想做的是主动消息传递。你可以看看this documentthe sample it references以便更好地了解如何执行此操作。

如果您希望计时器触发主动消息,则可以在机器人的线程上运行计时器,但通常建议让计时器在外部运行。

要为您的机器人禁用消息传递,只需在您的 channel configuration 中选择该选项即可。 .不过,我不确定如果禁用消息传递,您将如何检索对话 ID。

enter image description here

如果您仍然希望您的机器人接收消息但只是不想回复它们,只需编辑您的机器人代码中响应条件的部分 turnContext.activity.type === 'message'

请记住,Skype 机器人功能可能会越来越受限。你应该会在你的 Skype channel 配置中看到一条官方消息,上面写着:

As of October 31, 2019 the Skype channel will no longer be accepting new Bot registrations. Current Skype bots will continue to run uninterrupted.

关于javascript - Microsoft Bot Framework 无需用户与机器人对话即可发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com