Teams BotBuilder内联附件下载功能失效问题求助
Teams内联附件下载报错405 Method Not Allowed(API isn't enabled for the bot)
问题背景
自2024年5月10日起,使用Bot Builder SDK下载Teams内联附件时,调用Microsoft API持续返回错误,所有应用均受影响,且未做任何代码或配置变更。
错误详情
机器人接收的负载示例
{ "contentType": "image/*", "content": { "downloadUrl": "https://smba.trafficmanager.net/amer/f5cedd40-cc83-4a78-8c26-3328f7ceea20/v3/attachments/0-wus-d7-c727ca4fc1e3d4f753a36db52ebc183a/views/original", "uniqueId": "da962cd8-1828-4d56-a5b0-bd1e4f36343e", "fileType": "png", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkwxS2ZLRklfam5YYndXYzIyeFp4dzFzVUhIMCIsImtpZCI6IkwxS2ZLRklfam5YYndXYzIyeFp4dzFzVUhIMCJ9.eyJhdWQiOiJodHRwczovL2FwaS5ib3RmcmFtZXdvcmsuY29tIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZDZkNDk0MjAtZjM5Yi00ZGY3LWExZGMtZDU5YTkzNTg3MWRiLyIsImlhdCI6MTcxNTY3ODMzNCwibmJmIjoxNzE1Njc4MzM0LCJleHAiOjE3MTU3NjUwMzQsImFpbyI6IkUyTmdZTGlWMi9LenhrbFQ1OVZoSHFhajA4N1BCd0E9IiwiYXBwaWQiOiIwYzQ1NzUzNC01ZDllLTQ0ODgtODJhZC1iZWJmMzVjZmNkOWUiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9kNmQ0OTQyMC1mMzliLTRkZjctYTFkYy1kNTlhOTM1ODcxZGIiwicmgiOiIwLkFXNEFJSlRVMXB2ejkwMmgzTldhazFoeDIwSXpMWTBwejFsSmxYY09EcS05RnJ4dUFBQS4iLCJ0aWQiOiJkNmQ0OTQyMC1mMzliLTRkZjctYTFkYy1kNTlhOTM1ODcxZGIiLCJ1dGkiOiJaNzl0SmNJcUtFQ0dYWUcxbDNGYUFBIiwidmVyIjoiMS4wIn0.ICOrwGAsSsSJtb4ieYRf2ZLYIgJ5SB_PpBoMA-YvQweTiitXROTwJaX6h-zp1QHQdvj30nCpSUaMtgysMqTscNm25j9tyU2zpj6nZdVm8XMhYKodNNZogQxxIwXT97eahVc61R9zVZQoM4Bz2Alf8tGjPa-zVIybcBZp1F9PeRnZsweQS9zPakO0Ps0AQWk01H2QVFMKEYSxvAv9mGHn1RLJOgmRqdeW3Lm-Uf0GY7Mn6OFV4ClVGAvbSstkXzRvzRT8g6CLpFdzYiccZbxEZmNfPDBFZGk_To1mVvkX7e4DbeNjoCnG2jQlvOaDznIkwZrA_7ntyExMWSjQ9e4_Zw" }, "contentUrl": "https://smba.trafficmanager.net/amer/f5cedd40-cc83-4a78-8c26-3328f7ceea20/v3/attachments/0-wus-d7-c727ca4fc1e3d4f753a36db52ebc183a/views/original", "name": "attachment-1c1eef31-8d4d-4185-a9fd-056774c5ef09.png" }
请求参数
- 请求地址:
https://smba.trafficmanager.net/amer/f5cedd40-cc83-4a78-8c26-3328f7ceea20/v3/attachments/0-wus-d7-c727ca4fc1e3d4f753a36db52ebc183a/views/original - 请求方法:GET
- 请求头:
Authorization: Bearer {{上述负载中的token}}
返回错误
- 状态码:405 Method Not Allowed
- 响应体:
{ "error": { "code": "BadArgument", "message": "API isn't enabled for the bot" } }
复现步骤
在Teams中向机器人发送带内联附件的消息即可触发该错误:
环境信息
- Bot Builder SDK版本:botbuilder@4.16.0
- Node.js版本:v16.20.2
- 操作系统:Mac
解决方案与排查方向
1. 升级Bot Builder SDK版本
当前使用的v4.16.0版本较旧,Microsoft在2024年5月对Teams附件API做了后端变更,旧版SDK的请求逻辑已不兼容。升级至v4.20及以上稳定版本可解决该问题,新版本已适配API的权限验证逻辑。
2. 检查机器人权限配置
在Azure门户的机器人资源中,确认已添加并授权以下权限:
TeamsGraphAPI.Read.All:用于读取Teams中的文件附件- 确保权限已完成管理员同意,避免因权限缺失导致API调用被拦截。
3. 验证请求头完整性
除Authorization头外,添加Accept: image/*(针对图片附件)或Accept: application/octet-stream(通用文件类型)请求头,确保服务端能正确识别请求的资源类型。
4. 参考已知问题
该问题是Teams API后端变更导致的兼容性问题,多个同版本SDK用户均受影响,升级SDK是最直接的解决方式;部分用户通过重新配置机器人的API权限并授权后也解决了问题。
内容的提问来源于stack exchange,提问作者Vyacheslav A.
相关产品推荐
相关产品推荐

