【问题标题】:How to get a list of all the members from MS Teams organization using Bot Framework Connection如何使用 Bot Framework Connection 从 MS Teams 组织中获取所有成员的列表
【发布时间】:2021-02-22 09:35:58
【问题描述】:

我正在使用 JavaScript 为 MS Teams 开发一个机器人。

使用 Bot Framework Connector 我已将机器人安装到一个团队中,存储 teamIdtenantIdserviceUrlchannelId。我能够向频道发送消息,也可以直接向用户发送消息,知道其 userId。

我的问题是如何从 MS Teams 组织中获取所有用户的列表,或者至少如何获取知道其电子邮件和 UPN 的用户 ID?有没有可能,只有这些信息,使用botframework-connector来做到这一点?

注意:我需要说明的是我不能使用 Graph API,因为我的机器人没有 Graph 权限并且我没有上下文,我的机器人正在发起对话。

【问题讨论】:

    标签: javascript botframework microsoft-teams


    【解决方案1】:

    我正在使用 JavaScript 为 MS Teams 开发一个机器人。

    使用 Bot Framework Connector 我已将机器人安装到一个团队中, 存储 teamId、tenantId、serviceUrl 和 channelId。我能够发送 向频道发送消息,同时向用户发送直接消息, 知道它的 userId。

    我的问题是如何从 MS Teams 中获取所有用户的列表 组织

    如果没有 Graph,您将无法从组织中获取所有用户。频道可能,不确定。

    或至少如何获取知道其电子邮件的用户 ID 和 UPN?只有这些信息,才有可能做到这一点 使用 botframework-connector?

    使用 TeamsActivityHandler,您可以在用户发送消息时获取用户的上下文。有一些关于用户的信息。如:

    AadObjectId: <REDACTED>
    Email: <REDACTED>
    GivenName: null
    Id: <REDACTED>
    Name: <REDACTED>
    Properties: {{}}
    Role: null
    Surname: null
    TenantId: <REDACTED>
    UserPrincipalName: <REDACTED>
    UserRole: "guest"
    

    有关更多信息/示例,请参阅 this samplethis line

    注意:我需要提一下,我无法使用 Graph API,因为我的机器人 没有图形权限,我没有上下文,我的机器人是 开始对话。

    不幸的是,如果没有 Graph 访问权限,您将无法获得更多。

    【讨论】:

    • 感谢您的回复。我需要让 userId 知道它的电子邮件和 UPN,而不需要用户的任何上下文或交互。我设法做到这一点的唯一方法是使用const teamMembers = await connectorClient.conversations.getConversationMembers(teamId) 获取对话成员列表(机器人只能访问他安装的频道的成员)
    猜你喜欢
    • 2021-10-08
    • 2023-03-11
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多