企微智能机器人长链接使用
评论
收藏

企微智能机器人长链接使用

经验分享
鲁小智校长
2026-04-23 17:26·浏览量:283
鲁小智校长
影刀高级开发者
发布于 2026-04-23 16:56更新于 2026-04-23 17:26283浏览

参考文献:WebSocket 长连接

参考企微文献:智能机器人长连接 - 文档 - 企业微信开发者中心

前期配置:

pip install wecom-aibot-python-sdk

依赖:

  • Python >= 3.8

  • websockets >= 12.0

  • aiohttp >= 3.9

  • pyee >= 11.0

  • cryptography >= 42.0

  • certifi>=2023.0

  • python-dotenv>=1.0 (可选,用于加载 .env 文件)

具体代码:

import asyncio
import os
from aibot import WSClient, WSClientOptions, generate_req_id

BOT_ID = ""
BOT_SECRET = ""

# 1. 创建客户端实例
ws_client = WSClient(
    WSClientOptions(
        bot_id= BOT_ID,       # 企业微信后台获取的机器人 ID
        secret= BOT_SECRET,   # 企业微信后台获取的机器人 Secret
    )
)

# 2. 监听认证成功
@ws_client.on('authenticated')
def on_authenticated():
    print('🔐 认证成功')

# 3. 监听文本消息并进行流式回复
@ws_client.on('message.text')
async def on_text(frame):
    body = frame.get('body', {})
    print(body)
    userid = body.get('from', {}).get('userid', {})
    content = body.get('text', {}).get('content', '')
    print(f'收到文本: {content}')

    stream_id = generate_req_id('stream')

    # 发送流式中间内容
    await ws_client.reply_stream(frame, stream_id, '正在思考中...', False)

    # 发送最终结果
    await asyncio.sleep(1)
    await ws_client.reply_stream(frame, stream_id, f'{userid}说: "{content}"', True)

# 4. 监听进入会话事件(发送欢迎语)
@ws_client.on('event.enter_chat')
async def on_enter_chat(frame):
    await ws_client.reply_welcome(frame, {
        'msgtype': 'text',
        'text': {'content': '您好!我是智能助手,有什么可以帮您的吗?'},
    })

# 5. 启动(便捷方法,内部管理事件循环)
ws_client.run()

收藏1
全部评论1
最新
发布评论
评论