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

能否不依赖Azure Bot Service开发交互式Microsoft Teams Bot?求Python示例

无需Azure Bot Service注册开发Microsoft Teams Bot的可行性及Python实现

可行性说明

  • 开发调试阶段可以跳过Azure Bot Service注册流程,通过本地服务暴露+Teams自定义配置实现交互式沟通
  • 核心逻辑是利用Teams的webhook消息机制,借助ngrok等工具将本地Bot服务映射为公网可访问地址,再在Teams中手动配置机器人指向该地址
  • 注意:正式上线部署时仍需注册Azure Bot Service以获取稳定托管、身份验证及官方支持,但纯开发调试场景完全可绕过注册步骤

Python实现示例

以下是基于FastAPI的极简实现,可快速搭建能与Teams交互的本地Bot:

1. 安装依赖

pip install fastapi uvicorn

2. Bot核心代码

from fastapi import FastAPI, Request, Response
import json

app = FastAPI()

# 处理Teams发送的消息请求
@app.post("/teams/webhook")
async def process_teams_message(request: Request):
    req_data = await request.json()
    
    # 响应普通消息
    if req_data.get("type") == "message":
        user_input = req_data["text"]
        reply_content = {
            "type": "message",
            "text": f"收到你的消息:{user_input}"
        }
        return Response(content=json.dumps(reply_content), media_type="application/json")
    
    # 处理Teams的初始验证请求(必须实现,否则无法建立连接)
    elif req_data.get("type") == "invoke":
        return Response(content=json.dumps({"status": 200}), media_type="application/json")
    
    return Response(content=json.dumps({"status": 200}), media_type="application/json")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

3. 配置与测试步骤

  • 运行代码后,用ngrok暴露本地端口:ngrok http 8000,获取生成的公网URL(如https://xxxx-xx-xx-xx-xx.ngrok.io)
  • 在Teams中添加自定义机器人:
    1. 进入目标团队频道,点击「+」选择「创建自定义应用」
    2. 填写应用基本信息后,切换到「机器人」配置页,添加机器人并设置消息端点为https://xxxx-xx-xx-xx-xx.ngrok.io/teams/webhook
    3. 保存应用并安装到当前团队,即可发送消息与Bot交互

内容的提问来源于stack exchange,提问作者erase.ego

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:40:56