钉钉机器人发送图片-如何实现?
评论
收藏

钉钉机器人发送图片-如何实现?

经验分享
曾诚
2024-04-02 17:49·浏览量:1706
曾诚
发布于 2024-04-02 17:491706浏览

相信大家都使用过钉钉机器人,那么使用钉钉机器人只发送消息类型的数据未免太过单调,另外有时候图片比文字信息量更多,企业中用到的场景也非常多。那么问题来了,钉钉机器人可以发送base64编码格式的图片,但是一点图片大一点,基本就会超出长度限制。那么有什么别的方式实现吗?

答案是有的,大家都知道,钉钉机器人是可以发送markdown格式的消息的,但是有一个比较苛刻的要求,那就是需要网络图片,无法通过本地发送的形式。那么,如果自己搭建一个服务器,专门用来上传图片及访问图片呢?答案是可以,但是这就需要考虑一个新问题,成本问题。那有没有便宜的或者免费的呢....................................................

没错,答案是有。

https://www.imgtp.com/

上面这个网站就是一个好用的公共图床网站,它提供了上传,删除等一系列的接口,接口文档清晰,最主要的就是-----它免费啊!666

它同时也支持网站在线上传,注册用户可享受30G的免费存储空间。

如果你担心30G不够用,可以定时清理(可在线清理,也可通过接口清理),不用担心图片消失,它删除的只是图片与你账号绑定的关系,以前的链接依然可以访问,所以用于钉钉发送图片最合适不过。

不过要注意的是,免费带来的就是数据的不安全,如果你的图片上有敏感信息,建议不要使用。

下面我提供我自己封装好的部分代码(因为目前用到只有那么多,所以很多操作并没有写,欢迎大家补充):

def get_token() -> str:
    """获取token"""
    data = requests.post('https://www.imgtp.com/api/token',
                         json={'email': '你的邮箱', 'password': '你的密码', 'refresh': '0'})
    return json.loads(data.text)["data"]["token"]
    
def upload_image(image_path: str) -> str:
    """上传图片,并获取图片在线地址"""
    files = {'image': (image_path, open(image_path, 'rb'), 'multipart/form-data')}
    data = requests.post('https://www.imgtp.com/api/upload', files=files, headers={'token': get_token()})
    return json.loads(data.text)["data"]["url"]

最后说句我的感受,30G用不完,根本用不完偷笑

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