gpt4 book ai didi

c# - 每次在 Yammer 和 Bot Framework 上提及或收到私有(private)消息时调用 Web 服务或运行代码

转载 作者:行者123 更新时间:2023-11-30 17:36:15 25 4
gpt4 key购买 nike

每次有人在 Yammer 上被提及或收到直接消息时,我正在尝试找到一种方法来运行一段代码(MS Bot Framework,托管在 Azure 上的 C#)。

我尝试过的两种方式:

1) 目前我想出的最好方法是启用来自 Yammer 的电子邮件通知,并查看来自 notifications@yammer.com 的电子邮件的邮箱。 Microsoft 的 Bot Framework 具有用于监控电子邮件的一键式设置,因此可以正常工作。

但是通知电子邮件会延迟 15 分钟到达,这使得它毫无用处,因为我需要近乎即时的性能。

最后,看起来这种方法根本行不通,因为 MS Bot Framework 似乎回复了发送电子邮件的电子邮件地址,而不是我指定的电子邮件地址:

    if (activity.ChannelId == "email" && activity.From.Id == "notifications@yammer.com")
{
var newActivity = activity.CreateReply();

//doesn't work, sends email back to the activity.From.Id
newActivity.Recipient.Id = "k48@gmail.com";
newActivity.Text = "I got a message from " + activity.From.Name + "!";
BotUtils.SendActivityToChat(newActivity);
}

我可以编写自己的代码来向任意收件人发送电子邮件,但仍然存在延迟 15 分钟的问题。

2) 我正在使用的另一种方法是每分钟轮询 Yammer 的 API 以查看是否有新消息,但这仍然不是即时的,我不确定如果我继续轮询 API 方式我的帐户是否会被禁止太频繁。 (更新:官方速率限制是每分钟 1 次投票,否则他们会禁止您)。

我错过了什么吗?每次在 Yammer 上收到消息或提及时,您还会如何运行一段代码?

最佳答案

BotFramework 不允许您将消息回复到与发件人不同的地址。但是,如果收件人是机器人之前收到过消息的人,您可以向他们发送主动消息。要发送主动消息,您可以保留 ServiceUrl 和用户的 ChannelAccount(从该用户的一条消息中提取)并使用此数据从您的机器人向该用户发送新事件。

这是一个 example in C#

这是一个 example in Node.js

关于c# - 每次在 Yammer 和 Bot Framework 上提及或收到私有(private)消息时调用 Web 服务或运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39911952/

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