oapi-sdk-java icon indicating copy to clipboard operation
oapi-sdk-java copied to clipboard

原生审批缺少文件上传接口

Open hqr2019 opened this issue 2 years ago • 4 comments

当审批表单中有图片或附件控件时,开发者需在创建审批实例前通过审批上传文件接口将文件上传到审批系统,且附件上传大小限制为50M,图片上传大小为10M。

请求 HTTP URL https://www.feishu.cn/approval/openapi/v2/file/upload HTTP Method POST 支持的应用类型 自建应用、商店应用 权限要求 访问审批应用

hqr2019 avatar Jan 13 '23 10:01 hqr2019

这个是怎么解决的?

eyong4736 avatar Oct 30 '23 12:10 eyong4736

@eyong4736 RawResponse response = feishuClient.post(url, body, AccessTokenType.App);

hqr2019 avatar Nov 02 '23 05:11 hqr2019

能麻烦再详细点吗?这个 body 是怎么拼接的,有 Demo 吗

eyong4736 avatar Nov 15 '23 09:11 eyong4736

能麻烦再详细点吗?这个 body 是怎么拼接的,有 Demo 吗 @eyong4736
两个关键点,一个requestOptions.setSupportUpload(true);设置为true才会去解析参数中的文件;另一个参数中的content和type 这两个字段必须要添加SerializedName注解

` public static void main(String[] args) throws Exception { String uploadUrl = "https://www.feishu.cn/approval/openapi/v2/file/upload"; RequestOptions requestOptions = new RequestOptions(); requestOptions.setSupportUpload(true); FileParam body = new FileParam(); body.setName("测试报表231120报表数据.xls"); body.setType("attachment"); body.setContent(new File("/Users/houyi/Downloads/测试报表231120报表数据.xls")); RawResponse response = feishuClient.post(uploadUrl, body, AccessTokenType.Tenant, requestOptions); if (response.getStatusCode() == 200) { System.out.println(JSON.toJSONString(new String(response.getBody()))); } }

@Data
private static class FileParam {
    @SerializedName("name")
    private String name;

    @SerializedName("type")
    private String type;

    @SerializedName("content")
    private File content;
}`

hqr2019 avatar Nov 20 '23 05:11 hqr2019