如何用pymsteams或其他工具将TXT文件上传至MS Teams频道文件夹?
将本地TXT文件上传至Microsoft Teams频道指定文件夹的实现步骤
方法一:使用Microsoft Graph API(推荐,支持直接上传到文件夹)
前置准备
- 在Azure AD注册应用,获取三个关键信息:客户端ID、客户端密钥、租户ID
- 为该应用分配
Files.ReadWrite.All和Group.ReadWrite.All的应用权限(需管理员同意授权) - 找到目标资源的ID:
- 团队ID(Group ID):可通过Teams网页版查看团队设置获取
- 文件夹ID:打开目标文件夹后,从网页URL的
folderId参数中提取
操作步骤
- 安装所需依赖
pip install requests python-dotenv
- 获取Graph API访问令牌
创建.env文件存储敏感信息,然后编写代码获取令牌:
import requests import os from dotenv import load_dotenv load_dotenv() tenant_id = os.getenv("TENANT_ID") client_id = os.getenv("CLIENT_ID") client_secret = os.getenv("CLIENT_SECRET") token_url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token" token_payload = { "grant_type": "client_credentials", "client_id": client_id, "client_secret": client_secret, "scope": "https://graph.microsoft.com/.default" } response = requests.post(token_url, data=token_payload) access_token = response.json()["access_token"]
- 上传文件到指定文件夹
替换代码中的占位值,执行上传:
group_id = "你的团队Group ID" folder_id = "目标文件夹ID" local_txt_path = "./your-file.txt" file_name = os.path.basename(local_txt_path) upload_endpoint = f"https://graph.microsoft.com/v1.0/groups/{group_id}/drive/items/{folder_id}:/{file_name}:/content" headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "text/plain" } with open(local_txt_path, "rb") as file: upload_response = requests.put(upload_endpoint, headers=headers, data=file) if upload_response.status_code == 201: print("文件成功上传到指定文件夹") else: print(f"上传失败:{upload_response.json()}")
方法二:使用pymsteams发送到频道聊天(无法直接存入文件夹)
如果仅需将文件发送到频道聊天而非指定文件夹,可使用pymsteams:
- 安装库
pip install pymsteams
- 获取频道的Incoming Webhook URL:进入频道设置→连接器→添加Incoming Webhook→复制生成的URL
- 编写发送代码:
import pymsteams webhook_url = "你的频道Webhook URL" card = pymsteams.connectorcard(webhook_url) card.text("上传的测试TXT文件") card.addAttachment("./your-file.txt") card.send()
注意:此方式文件会出现在频道聊天消息中,不会存入频道内的指定文件夹。
内容的提问来源于stack exchange,提问作者Javi Torre
相关产品推荐
相关产品推荐

