每次在 Yammer 和 Bot Framework 上提及或收到私人消息时调用网络服务或 运行 代码
Call a webservice or run code every time a person is mentioned or receives private message on Yammer and Bot Framework
我正在尝试找到一种方法来 运行 每当有人在 Yammer 上被提及或收到一条直接消息时,一段代码(MS Bot 框架,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(从该用户的一条消息中提取)并使用此数据从您的机器人向该用户发送新的 activity。
这是一个example in C#
我正在尝试找到一种方法来 运行 每当有人在 Yammer 上被提及或收到一条直接消息时,一段代码(MS Bot 框架,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(从该用户的一条消息中提取)并使用此数据从您的机器人向该用户发送新的 activity。
这是一个example in C#