使用节点 sdk v4 通过 MS Teams 频道在 Bot 中获取用户配置文件
Fetching user profile in Bot with MS Teams channel using node sdk v4
我正在为 node.js 使用 Microsoft Bot Framework SDK v3 和 v4。我有一个 v3 机器人和一个 v4 机器人,都有 MS 团队频道,但我无法在 v4 机器人的机器人代码中获取用户的个人资料详细信息。 (正是在寻找 userprincipalname )
在 v3 中,我使用的是 TeamsChatConnector,它具有 fetchMembers() 来获取用户详细信息,但在 v4 中情况发生了变化。它也被称为 'Fetching the team roster'。
这里是 documentation
在 v4 机器人中,有 BotFrameworkAdapter,它不特定于 MS 团队或任何其他渠道。如果我检查 activity 对象,我可以从 'from' 属性 中看到,它只有用户名:'lastName,First name' 和
AAD 对象 ID,但不是通常为电子邮件地址的用户主体名称。
如果用户使用的是 MS 团队频道,我如何才能在 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));
}
}
);
如果有人像我一样迷路了,就把它留在这里吧。您可以向 REST API 发出请求,获取该信息。 Here you can see the endpoint
在这里您可以看到如何设置 headers:Link
结合两者,进行 GET 将 return 团队聊天或 1:1 聊天中的用户上下文。
我正在为 node.js 使用 Microsoft Bot Framework SDK v3 和 v4。我有一个 v3 机器人和一个 v4 机器人,都有 MS 团队频道,但我无法在 v4 机器人的机器人代码中获取用户的个人资料详细信息。 (正是在寻找 userprincipalname )
在 v3 中,我使用的是 TeamsChatConnector,它具有 fetchMembers() 来获取用户详细信息,但在 v4 中情况发生了变化。它也被称为 'Fetching the team roster'。 这里是 documentation
在 v4 机器人中,有 BotFrameworkAdapter,它不特定于 MS 团队或任何其他渠道。如果我检查 activity 对象,我可以从 'from' 属性 中看到,它只有用户名:'lastName,First name' 和 AAD 对象 ID,但不是通常为电子邮件地址的用户主体名称。
如果用户使用的是 MS 团队频道,我如何才能在 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));
}
}
);
如果有人像我一样迷路了,就把它留在这里吧。您可以向 REST API 发出请求,获取该信息。 Here you can see the endpoint
在这里您可以看到如何设置 headers:Link
结合两者,进行 GET 将 return 团队聊天或 1:1 聊天中的用户上下文。