飞书上传图片

这篇博客介绍了如何在飞书平台上传图片,包括访问凭证的获取和使用。首先,详细阐述了从飞书开发文档中获取上传图片接口的过程,并强调了请求头中需要的token(tenant_access_token)。接着,解释了如何通过AppId和AppSecret获取token,以及如何利用Apache Commons Codec库的DigestUtils.md5Hex()方法处理token存储。最后,提到了将URL图片转化为二进制文件以便进行上传的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 概述

飞书开发文档上传图片: https://open.feishu.cn/document/server-docs/im-v1/image/create

上传图片接口,支持上传 JPEG、PNG、WEBP、GIF、TIFF、BMP、ICO格式图片。

在这里插入图片描述
在请求头上需要获取token(访问凭证)
在这里插入图片描述

1.1 访问凭证

在1中可以看到,上传需要二进制文件与token(tenant_access_token)

如何获取token 相关文档 https://open.feishu.cn/document/server-docs/api-call-guide/calling-process/get-access-token

在这里插入图片描述
在这里插入图片描述
在上图看到需要机器人的AppId与 AppSecret,然后按照文档https://open.feishu.cn/document/server-docs/authentication-management/access-token/tenant_access_token_internal中的描述,通过POST请求方式获取。
在这里插入图片描述

在这里插入图片描述
最后返回的结果如下:

{
   
    "code": 0,
    "msg": "ok",
    "tenant_access_token": "t-caecc734c2e3328a62489fe0648c4b98779515d3",
    "expire": 7200     // 单位为秒
}

当然,有了有效期我们就可以把token放入redis。
redis的key可以通过

String key = DigestUtils.md5Hex(AppId + AppSecret);


DigestUtils 是 org.apache.commons.codec.digest;包下的

import org.apache.commons.codec.digest.DigestUtils;
System.out.println(DigestUtils.md5Hex("123"));
System.out.println(DigestUtils.md5Hex("123"));
通过DigestUtils.md5Hex 相同的data获取的值是一样的

在这里插入图片描述

DigestUtils.md5Hex() 是 Apache Commons Codec 库中的一个方法,用于计算字符串的 MD5 散列值并以十六进制字符串的形式返回结果。它的工作原理是将输入字符串转换为字节数组,然后使用 Java 的 MessageDigest 类来计算 MD5 散列值。最后,将计算得到的字节数组转换为十六进制字符串表示。

	// Redis的缓存设定

	private static String accessTokenKey = "feishu:token:{key}";

    @Autowired
    private RedisTemplateSupport redisTemplateSupport;

    /**
     * 缓存飞书访问凭证Token
     *
     * @param token  String
     * @param key
     * @param expire
     */
    public void cacheToken(String key, String token, Integer expire) {
   
        key = accessTokenKey.replace("{key}", key);

        redisTemplateSupport.set(key, token, expire - 2, TimeUnit.SECONDS);
    }

    /**
     * 获取token
     *
     * @param key
     * @return
     */
    public String fetchToken(String key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boy快快长大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值