唤醒手腕2025年最新钉钉开放平台钉钉机器人stream搭建部署详细教程(更新中)

钉钉开放平台

开放平台文档:https://open.dingtalk.com/document/resourcedownload/ding-card-interactive-card-building-platform-new

内部机器人:钉钉机器人搭建

企业内部机器人提供给开发者构建组织内部使用的机器人的能力,开发者可以通过配置企业内部机器人的配置项并调用相关接口向钉钉用户或者钉钉群内发送机器人消息,也可以接收从机器人向开发者组织的业务系统发送的消息。你可跟随本文完成企业内部机器人的配置、开发和上架。

文档地址:https://open.dingtalk.com/document/robots/custom-robot-access?spm=a213l2.30158279.0.0.56525669JvjPsu

内部机器人:创建企业内部应用

https://open-dev.dingtalk.com/fe/app?hash=%23%2Fcorp%2Fapp%3FopenCreate%3Dtrue#/corp/app?openCreate=true

内部机器人:Stream 模式

文档地址:https://open.dingtalk.com/document/resourcedownload/introduction-to-stream-mode?spm=a2q3p.21071111.0.0.31675mkf5mkf5M

Stream 模式是钉钉开放平台提供的一种集成方式,它可以监听机器人回调、事件订阅回调和注册卡片回调。使用 Stream 模式接入,钉钉开放平台将通过 Websocket 连接与应用程序通讯,Stream 模式将极大降低接入门槛和资源依赖,不需要公网服务器、IP、域名等资源,只需集成钉钉开放平台 SDK 即可。

在 Stream 模式下,开发者的应用程序通过集成 SDK 的方式与钉钉开放平台建立一条 WebSocket 连接,建立连接过程中开放平台将对连接进行鉴权。当有卡片回调发生时,开放平台将通过 WebSocket 连接将数据通知到开发者的应用程序。开发者的应用程序可以接收到这些数据并进行相应处理,从而实现与钉钉开放平台的实时通信。

安装 SDK

clike 复制代码
pip install dingtalk-stream
复制代码
# !/usr/bin/env python

import argparse
import logging
from dingtalk_stream import AckMessage
import dingtalk_stream

def setup_logger():
    logger = logging.getLogger()
    handler = logging.StreamHandler()
    handler.setFormatter(
        logging.Formatter('%(asctime)s %(name)-8s %(levelname)-8s %(message)s [%(filename)s:%(lineno)d]'))
    logger.addHandler(handler)
    logger.setLevel(logging.INFO)
    return logger


def define_options():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--client_id', dest='client_id', required=True,
        help='app_key or suite_key from https://open-dev.digntalk.com'
    )
    parser.add_argument(
        '--client_secret', dest='client_secret', required=True,
        help='app_secret or suite_secret from https://open-dev.digntalk.com'
    )
    options = parser.parse_args()
    return options


class CalcBotHandler(dingtalk_stream.ChatbotHandler):
    def __init__(self, logger: logging.Logger = None):
        super(dingtalk_stream.ChatbotHandler, self).__init__()
        if logger:
            self.logger = logger

    async def process(self, callback: dingtalk_stream.CallbackMessage):
        incoming_message = dingtalk_stream.ChatbotMessage.from_dict(callback.data)
        expression = incoming_message.text.content.strip()
        try:
            result = eval(expression)
        except Exception as e:
            result = 'Error: %s' % e
        self.logger.info('%s = %s' % (expression, result))
        response = 'Q: %s\nA: %s' % (expression, result)
        self.reply_text(response, incoming_message)

        return AckMessage.STATUS_OK, 'OK'

def main():
    logger = setup_logger()
    options = define_options()

    credential = dingtalk_stream.Credential(options.client_id, options.client_secret)
    client = dingtalk_stream.DingTalkStreamClient(credential)
    client.register_callback_handler(dingtalk_stream.chatbot.ChatbotMessage.TOPIC, CalcBotHandler(logger))
    client.start_forever()


if __name__ == '__main__':
    main()

usage: main.py [-h] --client_id CLIENT_ID --client_secret CLIENT_SECRET
main.py: error: the following arguments are required: --client_id, --client_secret

python .\main.py --client_id xxxxxx --client_secret xxxxxx
2025-10-14 04:47:03,378 dingtalk_stream.client INFO     open connection, url=https://api.dingtalk.com/v1.0/gateway/connections/open [stream.py:149]
2025-10-14 04:47:03,763 dingtalk_stream.client INFO     endpoint is {'endpoint': 'wss://wss-open-connection.dingtalk.com:443/connect', 'ticket': 'c58e29d9-a875-11f0-884b-5a20030ba585'} [stream.py:71]

互动卡片平台

文档地址:https://card.dingtalk.com/card-builder?spm=ding_open_doc.document.0.0.721e41694qaf1r&cardType=normal

自定义机器人:安全设置

为了确保自定义机器人使用过程的安全性,我们提供三种保护措施来保障你的自定义机器人安全运行。这些措施包括:设置自定义关键词、加签(使用签名加密)和 IP 地址(段)。通过这些方法,可以有效保护你的机器人不受恶意攻击

相关推荐
zzzzzz3104 天前
假如我是掘金管理员,我先给评论区装个'代码审查'系统
python·程序员·机器人
通信小呆呆4 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
生成论实验室4 天前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
yyxx4121235 天前
上海企业如何选择专业的钉钉服务商
java·大数据·人工智能·钉钉
Dick5075 天前
ROS2 常用命令表
人工智能·学习·算法·机器人
沫儿笙5 天前
川崎机器人二保焊节气设备
人工智能·机器人
C++ 老炮儿的技术栈5 天前
Qt工控实战:自研机器人TCP长连接客户端(粘包处理+心跳保活+自动重连完整源码解析)
qt·tcp/ip·机器人
Deepoch5 天前
VLA多模态架构加持 采摘机器人实现精细化智能采收
人工智能·机器人·开发板·具身模型·deepoc·采摘
选与握5 天前
$\pi_{0.7}$: 一个具备涌现能力的可引导的通用机器人基础模型
机器人·vla·pi07
梦想的旅途25 天前
企业微信外部群自动化:一期交付应聚焦双向会话闭环
java·开发语言·机器人·自动化·maven·企业微信