使用Microsoft Bot Framewok和C#在slack中获取消息发送者的名字。

问题描述 投票:1回答:1

我已经建立了一个在asp.net core中运行的Microsoft Bot Framework Instance,我已经使用Microsoft的Bot Channels注册连接到Slack。我已经使用微软的Bot Channels注册连接到Slack。

在我的机器人代码中,我有这样的内容。

protected override async Task OnMessageActivityAsync(
            ITurnContext<IMessageActivity> turnContext,
            CancellationToken cancellationToken)
{
  var message = $"From: {turnContext.Activity.From.Name})";
  await turnContext.SendActivityAsync(message, cancellationToken: cancellationToken);
}

总是返回 "From: BotName". 我希望 From.Name 将是机器人所回复的消息发送者的名字。

有没有办法获得发件人的用户名?我可以看到正确的懈怠用户ID在 turnContext.Activity.ChannelData但我认为我可以通过正常的机器人框架API来实现。

c# botframework slack slack-api
1个回答
0
投票

的方式 turnContext.Activity.From.Name 你用来获取发件人姓名的方法是正确的。我认为这是获取发件人姓名的最好方法。

根据 ITurnContext<IMessageActivity> turnContext 我们可以检查这个IMessageActivity对象的属性,最后只有 turnContext.Activity.From.Name 符合我们的要求。

enter image description here

而你也想从 顶端 是可用的。从下图可以看到会员的信息。通过官方文档中的api,我们可以通过以下方式获取指定活动的成员信息。GET /v3/conversations/{conversationId}/activities/{activityId}/members.

enter image description here


0
投票

请看这个问题的答案 此处. 本质上,有一种选择是使用channeldata附带的slack API令牌,进行额外的调用回到slack中来检索你需要的东西。OP还发现他们可以使用node中的session对象,但我无法完成这个途径。

© www.soinside.com 2019 - 2024. All rights reserved.