如何知道用户是否在团队中阻止了机器人

时间:2020-06-27 02:17:02

标签: botframework microsoft-teams microsoft-graph-teams

我使用Bot框架V4创建了一个机器人,并托管在Teams中。

我的漫游器可用于组织中的所有用户。

我想知道是否有人阻止了该机器人。

如果Bot被阻止,机器人是否有任何API或任何事件可知道用户ID?

预先感谢

2 个答案:

答案 0 :(得分:1)

用户消息如何与HTTPS方法调用相关?

当用户通过通道发送消息时,Bot Framework Web服务将向机器人的Web服务端点发出HTTPS POST。通过向Bot Framework发出一个单独的HTTPS POST(针对它发送的每条消息),该bot可以在该通道上向用户发送零,一个或许多消息。

如何截获用户与我的漫游器之间的所有消息?

使用Bot Framework SDK for .NET,可以为Autofac依赖项注入容器提供IPostToBot和IBotToUser接口的实现。使用Bot Framework SDK的任何语言,您都可以将中间件用于相同的目的。 BotBuilder-Azure存储库包含将这些数据记录到Azure表的C#和Node.js库。

答案 1 :(得分:0)

我仍在测试它,因此不确定它是否确实有效,但是我认为如果用户已卸载应用程序,则尝试获取“对话成员”将失败,否则将成功。代码是这样的(C#):

ConnectorClient connector = new ConnectorClient(new Uri(serviceUrl), appId, appSecret);

MicrosoftAppCredentials.TrustServiceUrl(serviceUrl);

var members = connector.Conversations.GetConversationMembersAsync(userConversationId).Result;

这可能仅在卸载了应用程序后才阻止,而在阻止程序中阻止了,但是测试起来很容易(不过今天我没有机会)。