Botframework 如何在Microsoft bot framework活动中获取用户/发件人电子邮件id?

Botframework 如何在Microsoft bot framework活动中获取用户/发件人电子邮件id?,botframework,microsoft-graph-api,mbf,Botframework,Microsoft Graph Api,Mbf,有没有办法在bot框架请求中获取发件人/用户电子邮件id 我可以在活动中获取发件人姓名,但是否有其他方法可以获取电子邮件id以及姓名和转换id?正如@md farid uddin kiron所说,您可以使用Graph。有一个示例几乎已经设置好了。请检查(我链接到一个特定的行作为示例) 对话ID可通过以下方式检索: stepContext.Context.Activity.Conversation.Id事实上,我可以看到Bot框架使得从团队频道获取信息变得非常容易。首先,在代码中使用语句添加以下:

有没有办法在bot框架请求中获取发件人/用户电子邮件id


我可以在活动中获取发件人姓名,但是否有其他方法可以获取电子邮件id以及姓名和转换id?

正如@md farid uddin kiron所说,您可以使用Graph。有一个示例几乎已经设置好了。请检查(我链接到一个特定的行作为示例)

对话ID可通过以下方式检索:
stepContext.Context.Activity.Conversation.Id

事实上,我可以看到Bot框架使得从团队频道获取信息变得非常容易。首先,在代码中使用语句添加以下

using Microsoft.Bot.Builder.Teams;
然后在要获取发件人数据的代码中使用以下行:

var members = await TeamsInfo.GetMembersAsync(turnContext, cancellationToken);
var userData = "";
foreach (var teamMember in members)
{
    if (teamMember.Id != turnContext.Activity.Recipient.Id)
    {
        userData = $"AadObjectId: {teamMember.AadObjectId}, Email: {teamMember.Email}, GivenName: {teamMember.GivenName}, Name: {teamMember.Name}, Role: {teamMember.Role}, Surname: {teamMember.Surname}, TenantId: {teamMember.TenantId}, UserPrincipalName: {teamMember.UserPrincipalName}, UserRole: {teamMember.UserRole}";
    }
}
members
变量将包含两个元素:一个表示bot,另一个表示发送者(人类用户)。此代码段构建
userData
字符串变量,该变量包含
teamMember
对象中所有可用属性的值


编辑:如果您不能访问
turnContext
对象,而是可以访问
stepContext
对象(它们分别出现在Bot框架的EchoBot和CoreBot中),只需替换我随附的
stepContext.Context
代码片段中的
turnContext

您是如何获得令牌的?您可以使用您使用的渠道来实现它?@DanaV microsoft团队