钉钉机器人发送表格

2023-12-14 19:17:11

背景:

? ? ? ? 由于每次发送excel连接,不太好看,想着简单的表格直接用消息的方式发送在群里,就想着弄一个直接发送的表格信息,但是钉钉官网是没有的。

? ? ? ? 我估计钉钉的开发人员也没有想过,会有人钻空子,用markdown发送表格。缺陷还是有的,

1、字体大小不能调;

2、收集APP不支持看表格消息,发送的消息会把表格去掉,数据还在。

3、反馈的问题,钉钉并未回复,态度差评。

实践:

发送消息的python

def get_timestamp_sign(signature):
    timestamp = str(round(time.time() * 1000))
    secret = signature  # SEC开头的
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
    return (timestamp, sign)


def signatureSendMessageAtAll(message, url, signature):
    timestamp, sign = get_timestamp_sign(signature)
    url = url + "&timestamp=" + timestamp + "&sign=" + sign
    h = {"Content-type": "application/json"}
    values = {
        'msgtype': 'markdown',
        'markdown': {
            'title':'技术中心播报系统',
            'text': '%s' % message
        },
        'at':{
            'isAtAll':False
        }
    }
    res = requests.post(url, data=json.dumps(values), headers=h)
    errmsg = json.loads(res.text)['errmsg']
    if errmsg == 'ok':
        return 'ok'
    return 'fail: %s' % res.text

signature是加签的标签,自定义机器人有的。url是自定义机器人地址

拼装markdown消息代码

def get_business_analysis_data():
    text = f"<table>" + "\n" \
           f"  <tr>" + "\n" \
           f"    <td>   \n\n大区</td>" + "\n" \
           f"    <td>   区域</td>" + "\n" \
           f"    <td>   查看率</td>" + "\n" \
           f"    <td>   留言率</td>" + "\n" \
           f"    <td>   留言量</td>" + "\n" \
           f"  </tr>" + "\n" \
           f"</table>"

    name=os.path.basename(__file__).split(".")[0]
    signatureSendMessageAtAll(text, url, signature)

特别注意,\n\n的用法,缺少会导致APP端查看没有数据。不要直接抄代码;发送消息的我已经封装了,贴的是大概。主要是讲text的格式,但凡少点东西,可能就不是表格效果,APP也没有任何数据。

效果:

PC

APP

颜色是这个起作用:
f" ? ?<td> ? <font color=\"#008000\">区域</font></td>" + "\n" \

不知道为啥字体大小和字体不支持,试过没反应。

最后呢,期望钉钉开发人员,尽快适配APP的markdown表格,既然能发送表格,那就干脆做好,人微言轻。

文章来源:https://blog.csdn.net/weixin_40817778/article/details/135000837
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。