You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bot Framework SDK开发的MS Teams Bot部署至Azure后发送视频、PDF附件提示“不支持文件附件”问题求助

解决Teams Bot部署到Azure后视频/PDF附件报错的问题

我来帮你排查这个问题!从你描述的情况来看,本地用ngrok和Bot Emulator测试一切正常,但部署到Azure后发送视频、PDF就弹出“File attachments aren’t supported”错误,图片却能正常工作,大概率是这几个原因导致的,咱们一步步来解决:

1. 先修正代码里的明显问题

你贴出的getInternetAttachment函数里,contentUrl是空的,而且name和contentType都写死成了视频的参数,这肯定会出问题!你应该把传入的参数正确用上,比如:

async function getInternetAttachment(filename, contentType, file_url) {
    // 确保file_url是有效的HTTPS链接,这是Teams的硬性要求
    return {
        name: filename,
        contentType: contentType,
        contentUrl: file_url
    };
}

本地测试时可能你临时填了有效的HTTPS链接(比如ngrok转发的本地文件地址),但部署到Azure后没正确传入file_url,导致Teams无法访问到附件资源,自然报错。

2. 确认附件的ContentUrl符合Teams要求

Teams对附件的contentUrl有严格要求:

  • 必须是HTTPS协议,HTTP链接绝对不被支持
  • 链接必须是公开可直接下载的,不能需要登录验证(比如如果你的文件存在Azure Blob Storage私有容器里,要生成带权限的SAS令牌作为访问链接)
  • 确保文件存储服务的CORS配置允许Teams域名访问(比如Azure Blob Storage要添加https://teams.microsoft.com到允许的起源列表)

3. 检查附件类型和大小限制

虽然图片能正常发送,但视频和PDF可能触发了Teams的限制:

  • 视频文件:Teams支持MP4格式,但要注意单个文件大小通常不能超过2GB(具体以Teams当前官方限制为准),同时contentType必须准确设置为video/mp4
  • PDF文件:contentType必须设置为application/pdf,如果类型写错,Teams会识别为不支持的附件类型

4. 查看Azure Bot的日志定位细节

如果上面的调整都没用,建议去Azure门户查看Bot的日志:

  1. 打开你的Azure Bot资源
  2. 进入「监控」->「日志」
  3. 搜索和附件发送相关的错误日志,里面会有更详细的报错信息(比如链接不可访问、权限不足、类型不匹配等),能帮你精准定位问题

5. 确认Bot Framework SDK版本

确保你使用的Node.js Bot Framework SDK是最新稳定版本,旧版本可能存在某些附件类型的处理bug。可以在项目根目录执行:

npm update botbuilder

更新后重新部署Bot到Azure试试。

内容的提问来源于stack exchange,提问作者Dummy Cron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:02:47