使用Slack sdk for java将文件上载到Slack
我正在尝试使用和将文件上载到slack 我尝试过同时使用.file()和.fileData(),但控制台中没有出现任何错误,事实上,在调用这两个方法之后,似乎什么都没有打印出来。当使用content(“something”)方法时,我只得到“All ok”和松弛的消息 这是我的密码:使用Slack sdk for java将文件上载到Slack,java,slack-api,Java,Slack Api,我正在尝试使用和将文件上载到slack 我尝试过同时使用.file()和.fileData(),但控制台中没有出现任何错误,事实上,在调用这两个方法之后,似乎什么都没有打印出来。当使用content(“something”)方法时,我只得到“All ok”和松弛的消息 这是我的密码: File report = new File(System.getProperty("user.dir") + "\\report.zip"); i
File report = new File(System.getProperty("user.dir") + "\\report.zip");
if(!report.exists()) {
System.out.println("Report Zip Doesnt Exist");
return false;
}
FilesUploadRequest request = FilesUploadRequest.builder()
.channels(channels)
.initialComment(comment)
.filename(report.getName())
//.file(report) doesnt work
//.fileData(FileUtils.readFileToByteArray(report)) doesnt work
.content("something") // works
.title("Report")
.filetype("zip")
.build();
try {
FilesUploadResponse response = methods.filesUpload(request);
if (response.isOk()) {
System.out.println("All ok");
return true;
} else {
System.out.println(response.getError());
return false;
}
} catch (SlackApiException requestFailure) {
System.out.println("Request failed");
return false;
} catch (IOException connectivityIssue) {
System.out.println("Connectivity issue");
return false;
}
有一种方法
在slack中创建应用->
转到添加功能->转到权限->
转到作用域->机器人令牌作用域->添加Oauth作用域和文件。写入->生成令牌
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setBearerAuth(token); // pass generated token here
MultiValueMap<String, Object> bodyMap = new LinkedMultiValueMap<>();
bodyMap.add("file", bos.toByteArray(),fileName )); // convert file to ByteArrayOutputStream and pass with toByteArray() or pass with new File()
bodyMap.add("initial_comment", message); // pass comments with file
bodyMap.add("channels", "XXXXXX"); // pass channel codeID
HttpEntity<MultiValueMap<String, Object>> entity = new HttpEntity<>(bodyMap, headers);
ResponseEntity<Object> responseEntity = restTemplate.postForEntity("https://slack.com/api/files.upload", entity,
Object.class);
System.out.println("sendEmailWithAttachment() response status: "+ responseEntity.getStatusCode().toString());
HttpHeaders=newhttpheaders();
headers.setContentType(MediaType.MULTIPART\u FORM\u DATA);
headers.setBearerAuth(令牌);//在这里传递生成的令牌
MultiValueMap bodyMap=新链接的MultiValueMap();
bodyMap.add(“文件”,bos.toByteArray(),fileName));//将文件转换为ByteArrayOutputStream并使用toByteArray()传递或使用新文件()传递
bodyMap.add(“初始注释”,消息);//将注释与文件一起传递
bodyMap.add(“频道”,“XXXXXX”);//通道代码ID
HttpEntity=新的HttpEntity(主体映射,标题);
ResponseEntity ResponseEntity=restTemplate.postForEntity(“https://slack.com/api/files.upload“,实体,
对象(类);
System.out.println(“sendEmailWithAttachment()响应状态:+responseEntity.getStatusCode().toString());