Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 3667

Correct use of files.getUploadURLExternal in Curl command line

$
0
0

I was using:

curl -v -F file=@/tmp/x.png -F "initial_comment" -F channels='xyz' -H "Authorization: Bearer oauth" https://slack.com/api/files.upload

Works still very well, but file.upload will be discontinued soon.

Now, after reading the doc, I tried:

curl \    -H "Authorization: Bearer xxx" \    -H "Content-Type: application/json" \    -F "filename=/tmp/img.png" \    -F "length=$(wc -c < /tmp/img.png)" \                                               https://slack.com/api/files.getUploadURLExternal | jq .

or

curl -X POST \    -H "Authorization: Bearer xxx" \    -H "Content-Type: application/x-www-form-urlencoded" \    -F "filename=@/tmp/img.png" \    -F "length=$(wc -c < /tmp/img.png)" \    https://slack.com/api/files.getUploadURLExternal | jq .

But I get JSON error for the first one:

{"ok": false,"error": "invalid_arguments","warning": "missing_charset","response_metadata": {"messages": ["[ERROR] missing required field: length","[ERROR] missing required field: filename"    ],"warnings": ["missing_charset"    ]  }}

and the second command:

{"ok": false,"error": "invalid_arg_name"}

How to pass parameters correctly ? The doc have no example in Curl. My charset is utf8, same, how to pass it?


Viewing all articles
Browse latest Browse all 3667

Trending Articles