Вы не можете использовать -F
и -d
вместе, так как они используют разные типы контента, и вам нужны multipart/form-data
. Так что попробуйте с:
https://graph.facebook.com/<id>/photos -F "source=@me.jpg" -F "message=Me" -v
От man curl
:
-F/- форма
(HTTP) Это позволяет curl эмулировать заполненную форму, в которой пользователь нажал кнопку отправки. Это приводит к скручиванию данных POST с использованием multipart/form-data Content-Type в соответствии с RFC2388. Это позволяет загружать двоичные файлы и т.д. Чтобы часть содержимого содержала файл, добавьте к имени файла префикс @. Чтобы просто получить часть содержимого из файла, добавьте к имени файла символ <. Разница между @ и <заключается в том, что @ заставляет файл прикрепляться к сообщению в виде загрузки файла, тогда как <создает текстовое поле и просто получает содержимое этого текстового поля из файла.