microsoft-graph-api - 如何访问 Teams 用户的电子邮件地址?
问题描述
我正在尝试为应用程序构建 Microsoft Teams 集成,但在获取用户的电子邮件地址时遇到了一些问题。
我使用 VS Code 的 Microsoft Teams 扩展来搭建一个基本应用程序。我在我的服务器上使用 BotFramework v4 (NodeJS)。我能够接收来自 Teams 的请求并做出响应。
为了获取用户的电子邮件地址,我使用了TeamsInfo.getMember(context, id)
从context.activity.from
object 获取 id 的方法。不幸的是,调用此方法会导致RestError: Unknown
状态码为 400。
我不确定我在这里缺少什么。我的应用程序已在 Azure Active Directory 中注册并具有User.Read.All
权限。我在这里错过了什么吗?
任何帮助,将不胜感激!
在某些情况下,我正在尝试构建一个消息扩展操作命令。
代码:
import {
TurnContext,
TeamsActivityHandler,
CardFactory,
MessagingExtensionAction,
TeamsInfo,
} from 'botbuilder';
export default class TeamsMessagingExtensionsActionBot extends TeamsActivityHandler {
constructor() {
super();
}
// @ts-ignore
handleTeamsMessagingExtensionSubmitAction(
context: TurnContext,
action: MessagingExtensionAction,
) {
switch (action.commandId) {
case 'someCommand':
return handleCommand(context, action);
default:
throw new Error('NotImplemented');
}
}
}
async function handleCommand(
context: TurnContext,
action: MessagingExtensionAction,
) {
const card = CardFactory.heroCard(
'Some Command',
'We have received your command!',
);
const user = await TeamsInfo.getMember(context, context.activity.from.id);
console.log('User:', user);
const attachment = {
contentType: card.contentType,
content: card.content,
preview: card,
};
return {
composeExtension: {
type: 'result',
attachmentLayout: 'list',
attachments: [attachment],
},
};
}
这是我在调用 TeamsInfo.getMember() 时遇到的错误:JSON
解决方案
推荐阅读
- swift - 静态@state 字符串字段
- dataframe - 如何使用 pyspark 遍历/迭代数据框?
- java - 如何为从 Gmail 服务器读取电子邮件的 Java 应用程序设计故障转移
- azure - 在 Azure 中的应用程序网关的 ARM 中获取动态 IP
- python - 关于用 Pandas 替换和 Dtypes 的说明
- php - PHP - 接收返回类作为参数的魔术方法的自动完成
- docker - 运行 Docker 后无法删除文件
- python - 多处理进程中的 Python AsyncIO
- css - 在移动版本中创建相等的列高
- c# - 使用 Post 而不是 Get 的 OData 查询