如何在机器人框架中获取用户详细信息



我正在构建一个团队机器人,需要向用户发送自适应卡片。

安装机器人后,我将向用户发送欢迎消息。从欢迎消息中,我能够使用 activity.from.id 获取用户的团队 ID。

From ID::29:1O_abckkskldjflkjfslxxxxxxxx

有了这个ID,我试图使用以下命令获取用户详细信息const member=TeamsInfo.getMember(context, context.activity.from.id);

但是我仍然无法获取用户详细信息。

如何获取用户的电子邮件ID,以便将来可以向用户发送通知?

根据文档,您仅将"id"传递给 getMember 对于 dotnet 库。对于 Node,它看起来像是想要电子邮件/UPN - 请参阅此处,而您正在发送 activity.from.id。也许尝试调用getPagedMembers - 如果只有一个用户(即1-1聊天(,它实际上与getMember相同。

工作片段::

this.onMembersAdded(async (context, next) => {
const membersAdded = context.activity.membersAdded;
for (let cnt = 0; cnt < membersAdded.length; ++cnt) {
if (membersAdded[cnt].id !== context.activity.recipient.id) {
var continuationToken;
var members = [];
do {
var pagedMembers = await TeamsInfo.getPagedMembers(context, 100, continuationToken);
continuationToken = pagedMembers.continuationToken;
members.push(...pagedMembers.members);
} while (continuationToken !== undefined);
members.forEach(member => {
const userEmail=member.userPrincipalName;
});
const card = CardFactory.adaptiveCard(welcomeCard);
const message = {
attachments: [card],
summary: 'Welcome'
};
await context.sendActivity(message);
}
}
// By calling next() you ensure that the next BotHandler is run.
await next();
});

最新更新