gpt4 book ai didi

javascript - TimerTrigger Azure Function 在 Bot Framework 上启动主动对话

转载 作者:行者123 更新时间:2023-12-03 03:53:50 26 4
gpt4 key购买 nike

我想简而言之,我想要相当于 this SO question 的 Nodejs。与 this Github Bot Framework example 结合.

我想使用一个 Azure 函数(我想象的是 TimerTrigger 函数或者可能是 QueueTrigger 函数),它将主动向给定的人员/地址子集发送消息,这些人(自然)已经向机器人发送了消息特定平台。

我的猜测是,我需要使用 TimerTrigger 并将其绑定(bind)到存储类型触发器(queueStorage?blogStorage?),该触发器将维护要发送消息的地址/人员列表,然后通过直线向机器人发送消息。虽然我对 Azure Functions 完全陌生。

首先,我使用主动模板在 Azure 上创建了一个机器人服务。在模板中,他们使用 QueueTrigger。我猜 TimerTrigger 的 function.json 看起来像这样:

{
"bindings": [
{
"name": "myQueuedAddresses",
"type": "timerTrigger",
"direction": "in",
"queueName": "bot-queue",
"schedule": "0 0 */1 * * *"
},
{
"type": "bot",
"name": "$return",
"direction": "out",
"botId": "botId"
},
{
"type": "http",
"name": "res",
"direction": "out"
}
]
}

要摄取触发器可能很简单:

bot.on('trigger', function (addresses) {
addresses.forEach(sendToAddress);
function sendToAddress(item) {
var queuedMessage = item.value;
var reply = new builder.Message()
.address(queuedMessage.address)
.text('This is coming from the trigger: ' + queuedMessage.text);
bot.send(reply);
}
});

但是将数据发送到触发器的 Javascript 会是什么样子呢?或者我应该使用什么触发器?

最佳答案

使用 TimerTrigger Azure 函数时,您不向触发器函数发送任何数据,它将根据设置的计划自动执行(“计划”中的 cron 作业设置:“0 0 */1 * * * ”)。在主动机器人模板中:一旦触发,机器人就会通过队列消息触发功能;该函数通过 Direct Line 触发机器人。

例如,如果您想向用户(从机器人)发送每日消息,那么您可以使用主动机器人模板,只需将触发功能端修改为 TimeTrigger,然后尝试在响应,以便您的机器人知道这是来自 TimerTrigger。 (如果机器人端不再需要写入队列,您也可以将其删除)。

关于javascript - TimerTrigger Azure Function 在 Bot Framework 上启动主动对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047358/

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