是否可以使用SDK4从带有Bot的MS Teams获得用户电子邮件?

时间:2019-07-06 22:51:25

标签: c# botframework microsoft-teams

我正在使用C#和Bot Framework SDK4,需要通过与我的机器人进行1:1聊天来获取用户电子邮件。可能吗?我似乎只能得到ID和全名。

我已经尝试过此处列出的内容https://docs.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;

那么,甚至有可能从与机器人聊天的当前用户那里获得用户电子邮件吗?

2 个答案:

答案 0 :(得分:1)

可以!对于the docs,您的操作与获取团队花名册的操作相同,只是使用对话ID。例如:

var creds = 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 );

注意:我尝试使用Microsoft.Bot.Connector.Teams软件包来执行此操作,但无法使其正常工作。必须使用上面的connector方法。

答案 1 :(得分:0)

import java.util.Arrays;

public class BigArray {

    public static void main(String[] args) {
        String[] buffer = new String[1447891223];
        Arrays.fill(buffer, "0.0");
    }
}

您可以访问-How get user email from MS Teams with a Bot using SDK4?