使用节点sdk v4

时间:2019-03-26 03:47:43

标签: node.js botframework microsoft-teams

我正在使用Microsoft Bot Framework SDK v3和v4(用于node.js)。我有一个v3 bot和一个v4 bot,都具有MS团队频道,但是我无法在v4 bot的bot代码中获取用户的个人资料详细信息。 (正是在寻找userprincipalname

在v3中,我使用的是TeamsChatConnector,它具有fetchMembers()来获取用户详细信息,但是v4中的情况有所变化。它也被称为“获取团队名册”。 这是documentation

在第4版漫游器中,有BotFrameworkAdapter,它不是特定于MS团队或任何其他渠道的。如果我检查活动对象,则可以从“发件人”属性中看到它仅具有用户名:“ lastName,First name”,并且 AAD对象ID,但不是userprincipalname,通常是电子邮件地址。

如果用户正在使用MS Team频道,如何在v4 BOT代码中访问用户的电子邮件地址或用户名?

  connector.fetchMembers(
    (<builder.IChatConnectorAddress>session.message.address).serviceUrl,
    conversationId,
    (err, result) => {
      if (err) {
        session.endDialog('There is some error');
      }
      else {
        session.endDialog('%s', JSON.stringify(result));
      }
    }
);

1 个答案:

答案 0 :(得分:0)

如果有人像我一样迷路,就把它留在这里。您可以向REST API发出请求,以获取该信息。 Here you can see the endpoint

在这里您可以看到如何设置标题:Link

将两者结合在一起进行GET会以团队聊天或1:1聊天的方式返回用户的上下文。