Uploading a file to slack using webwrite

1 visualización (últimos 30 días)
Franco Stellari
Franco Stellari el 22 de Nov. de 2016
Comentada: Juho el 22 de En. de 2020
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

Respuestas (1)

Jan
Jan el 23 de Nov. de 2016
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 comentarios
Jan
Jan el 23 de Nov. de 2016
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
Juho el 22 de En. de 2020
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

Iniciar sesión para comentar.

Categorías

Más información sobre Call Web Services from MATLAB Using HTTP en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by