当新用户添加到GroupMe频道的聊天中时,如何使Bot Framework机器人做出反应?

时间:2019-07-31 15:24:44

标签: c# botframework groupme

我有一个简单的机器人,仅由在Azure中运行的Echo Bot示例代码组成,并已连接到GroupMe频道。这是主要bot类中的代码:

public class EchoBot : ActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        await turnContext.SendActivityAsync(MessageFactory.Text($"Echo: {turnContext.Activity.Text}"), cancellationToken);
    }

    protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
    {
        foreach (var member in membersAdded)
        {
            if (member.Id != turnContext.Activity.Recipient.Id)
            {
                await turnContext.SendActivityAsync(MessageFactory.Text($"Hello and welcome!"), cancellationToken);
            }
        }
    }
}

当新用户加入或添加到群聊中时,我希望输出如下:

  

Sam Hanley加入了该小组

     

Bot:您好,欢迎光临!

但是奇怪的是,没有命中OnMembersAddedAsync方法,而是命中了OnMessageActivity方法。僵尸程序只是回显有关要添加新用户的消息,就像这样:

  

Sam Hanley加入了该小组

     

Bot:回声:Sam Hanley加入了该小组

我是否错误地认为Bot Framework应该将这些加入消息视为由OnMemberFyresAsync处理的事情?当有人在GroupMe频道中添加到对话中时,我还有其他方法可以识别发送的消息吗?

0 个答案:

没有答案