Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Slack sdk for java将文件上载到Slack_Java_Slack Api - Fatal编程技术网

使用Slack sdk for java将文件上载到Slack

使用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

我正在尝试使用和将文件上载到slack

我尝试过同时使用.file()和.fileData(),但控制台中没有出现任何错误,事实上,在调用这两个方法之后,似乎什么都没有打印出来。当使用content(“something”)方法时,我只得到“All ok”和松弛的消息

这是我的密码:

    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());