功能说明:使用python,在输入框输入robotid,就可以往该企业微信群中发送消息。

为啥写代码:现成的插件,因为默认的插件robotid不能变量赋值

解决办法:还得是deepseek,虽然经常摸鱼不干活,但是最后还是它解决了此问题

发文原因:python代码和dify代码执行模块如何使用以及dify如何设置

踩坑日志:

1. 如何在dify的代码执行引入流程的变量,答:main中定义+ dify的输入变量中设置好

2. 总提示:Output result is missing.(原来就是一个dify设置的问题,搞了我好久),答:在dify中的输出变量中,设置代码你定义result的status、message以及error,而不是result

python示例:

def main(robot_key, markdown_content):
    """Dify 工作流入口函数
    :param robot_key: 企业微信机器人Key
    :param markdown_content: Markdown格式消息内容
    :return: 包含执行状态的字典
    """
    # 在函数内部导入模块(符合Dify规范)
    import requests
    import json

    # 初始化返回结构
    result = {
        'status': 'success',
        'message': None,
        'error': None
    }

    try:
        # 构造企业微信API地址
        robot_url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={robot_key}"
        
        # 构建请求数据(修复点1:确保JSON格式化)
        payload = {
            "msgtype": "markdown",
            "markdown": {
                "content": markdown_content.strip()
            }
        }

        # 发送请求(关键修复:闭合括号)
        response = requests.post(  # <-- 错误行修复
            url=robot_url,
            headers={'Content-Type': 'application/json'},
            data=json.dumps(payload)
        )  # <-- 缺失的闭合括号在此补全

        # 解析响应
        response_data = response.json()
        result['message'] = response_data.get('errmsg', '无错误信息')

        # 检查企业微信API返回状态
        if response_data.get('errcode') != 0:
            result['status'] = 'error'
            result['error'] = response_data.get('errmsg')

    except Exception as e:
        # 异常处理
        result['status'] = 'error'
        result['error'] = str(e)
    
    return result

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐