Uploading a file to slack using webwrite
1 次查看(过去 30 天)
显示 更早的评论
I would like to be able to upload an image to slack using file.upload API and webwrite. The API ( https://api.slack.com/methods/files.upload ) requires to pass an argument "file" of 'multipart/form-data'.
I have tried this code and small variations unsuccessfully... any suggestion?
token='mytoken';
channel='mychannel';
filename='myimage.png';
fid=fopen(filename, 'rb');
data=fread(fid, Inf, '*char')';
fclose(fid);
options = weboptions;
options.RequestMethod = 'post';
options.MediaType = 'multipart/form-data';
options.HeaderFields = string({'token', token; 'channels', channel; 'filename', filename});
response = webwrite('https://slack.com/api/file.upload', data, options);
This yields 'invalid_form_data' and no image upload.
I also tried:
token='mytoken';
channel='mychannel';
filename='myimage.png';
fid=fopen(filename, 'rb');
data=fread(fid, Inf, '*char')';
fclose(fid);
options = weboptions;
options.RequestMethod = 'post';
options.MediaType = 'multipart/form-data';
response = webwrite(sprintf('https://slack.com/api/file.upload?token=%s&channels=%s&filename=%s&file=', token, channel, filename), data, options)
with the same results
0 个评论
回答(1 个)
Jan
2016-11-23
If you upload the file defining the file name, you do not have to provide the data separately. So try the secend method with providing the filename for "file=" also.
3 个评论
Jan
2016-11-23
Unfortuantely I find only CURL examples in the documentation. Because I've never worked with slack (or CURL) yet, I cannot guess the underlying patterns for the input arguments. But you can install CURL on your computer and use system or a C-Mex function to call it from Matlab. Then the examples from the slack pages run directly.
Juho
2020-1-22
Have you found solution? Since Matlab 2018, there is content provider for files which could help you:https://se.mathworks.com/help/matlab/ref/matlab.net.http.io.fileprovider-class.html?searchHighlight=matlab.net.http.io.FileProvider&s_tid=doc_srchtitle
I have similar problem when trying to upload file to Jira from Matlab. https://se.mathworks.com/matlabcentral/answers/501255-adding-attachment-to-jira-with-matlab-restful-api
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!