oapi-sdk-java
oapi-sdk-java copied to clipboard
原生审批缺少文件上传接口
当审批表单中有图片或附件控件时,开发者需在创建审批实例前通过审批上传文件接口将文件上传到审批系统,且附件上传大小限制为50M,图片上传大小为10M。
请求 HTTP URL https://www.feishu.cn/approval/openapi/v2/file/upload HTTP Method POST 支持的应用类型 自建应用、商店应用 权限要求 访问审批应用
这个是怎么解决的?
@eyong4736 RawResponse response = feishuClient.post(url, body, AccessTokenType.App);
能麻烦再详细点吗?这个 body 是怎么拼接的,有 Demo 吗
能麻烦再详细点吗?这个 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;
}`