

相信大家都使用过钉钉机器人,那么使用钉钉机器人只发送消息类型的数据未免太过单调,另外有时候图片比文字信息量更多,企业中用到的场景也非常多。那么问题来了,钉钉机器人可以发送base64编码格式的图片,但是一点图片大一点,基本就会超出长度限制。那么有什么别的方式实现吗?
答案是有的,大家都知道,钉钉机器人是可以发送markdown格式的消息的,但是有一个比较苛刻的要求,那就是需要网络图片,无法通过本地发送的形式。那么,如果自己搭建一个服务器,专门用来上传图片及访问图片呢?答案是可以,但是这就需要考虑一个新问题,成本问题。那有没有便宜的或者免费的呢....................................................
没错,答案是有。
https://www.imgtp.com/
上面这个网站就是一个好用的公共图床网站,它提供了上传,删除等一系列的接口,接口文档清晰,最主要的就是-----它免费啊!
它同时也支持网站在线上传,注册用户可享受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用不完,根本用不完