是否可以使用 SDK4 通过机器人从 MS Teams 获取用户电子邮件?

age*_*q15 3 c# botframework microsoft-teams

我正在使用 C# 和 Bot Framework SDK4,需要从与我的机器人的 1:1 聊天中获取用户电子邮件。是否可以?我能得到的似乎只有身份证和全名。

我已经尝试了此处列出的内容https://learn.microsoft.com/en-us/microsoftteams/platform/concepts/bots/bots-context ,但 teamContext 只是返回 null。

ITeamsContext teamsContext = turnContext.TurnState.Get<ITeamsContext>();

string incomingTeamId = teamsContext.Team.Id;
string incomingChannelid = teamsContext.Channel.Id;
string incomingTenantId = teamsContext.Tenant.Id;
Run Code Online (Sandbox Code Playgroud)

那么是否有可能从与机器人聊天的当前用户那里获取用户电子邮件?

mdr*_*son 6

你可以!根据文档,您只需执行与获取团队名册相同的操作,但使用对话 ID。例如:

var credentials = new MicrosoftAppCredentials("<yourAppId>", "<yourAppPassword>");
var connector = new ConnectorClient(new Uri(turnContext.Activity.ServiceUrl), credentials);
var conversationId = turnContext.Activity.Conversation.Id;
var userInfo = await connector.Conversations.GetConversationMembersAsync(conversationId );
Run Code Online (Sandbox Code Playgroud)

注意:我尝试使用该Microsoft.Bot.Connector.Teams包来执行此操作,但无法使其工作。只好用connector上面的方法了。