将 excel 文件发送到频道中的 teams 机器人

Sending an excel file to teams bot in a channel

提问人:user9262680 提问时间:11/17/2023 最后编辑:user9262680 更新时间:11/22/2023 访问量:38

问:

赏金将在 7 天后到期。这个问题的答案有资格获得 +50 声望赏金。User9262680 正在寻找来自信誉良好的来源的答案
该解决方案需要帮助能够获取使用 Teams 机器人在 Teams 频道中上传的 Excel 文件的内容 URL。

我使用 botbuilder SDK 4.0 制作了一个团队机器人,机器人中有一个功能,用户将文件上传到机器人,机器人收集download_url并将其发送到后端以供下载和处理文件,直到我将机器人添加到频道之前,这一切都正常工作。

我可以毫无问题地从机器人发送和接收消息,但文件上传不起作用,文件可以在频道中上传,但机器人没有收到响应,并且“context.activity.attachment.length”为 0,表示机器人尚未收到附件。

const url = context.activity.attachments[0].content.downloadUrl;

这是我在检查 attachment.length 是否大于 0 后用于获取下载 url 的代码。

在获取团队机器人框架中上传的文件的下载 url 方面,将不胜感激。

JavaScript 节点.js 机器人框架 微软团队 团队工具包

评论

0赞 Sayali-MSFT 11/21/2023
该问题可能是由于 Teams 中的文件上传在个人聊天和频道中的处理方式不同。在一对一聊天中,文件将作为附件发送到机器人。但是,在频道中,上传文件时,它实际上存储在与团队关联的 SharePoint 网站中,而不是作为附件发送到机器人。这就是 context.activity.attachments.length 为 0 的原因。
0赞 user9262680 11/22/2023
嗨,@Sayali-MSFT,如果是这样的话,我如何获取附件的内容网址?
0赞 Sayali-MSFT 11/23/2023
你能看看这个示例吗 github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/...
0赞 user9262680 11/23/2023
@Sayali-MSFT,我以前看过这个示例。不幸的是,我无法运行示例 bc 我没有 azure 订阅。但是从我从示例中收集到的信息来看,通过查看代码,它正在实现用于在 Teams 个人聊天中获取附件的相同方法。我的问题是将附件上传到TEAMS CHANNEL中。

答:

0赞 ChetanSharma-msft 11/27/2023 #1

Teams 机器人 API 仅在个人上下文中工作。它们在频道或群聊上下文中不起作用。

有两种方法可以向机器人发送文件以及从机器人接收文件:

使用 Microsoft 图形 API:此方法适用于所有 Microsoft Teams 范围内的机器人:

个人

渠道

群聊

使用 Teams 机器人 API:这些仅支持个人上下文中的文件。

参考文档链接: https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/bots-filesv4#use-the-teams-bot-apis