Нашел решение.
Эта команда ...
curl -F "access_token=<MY_ACCESS_TOKEN>" -F "message=This is the message I wanna post." -F "filedata=@square.png;type=image/png" "https://graph.facebook.com/v2.12/<MY_PAGE_ID>/photos"
Дает этот рабочий запрос:
POST https://graph.facebook.com/v2.12/<MY_PAGE_ID>/photos HTTP/1.1
Host: graph.facebook.com
User-Agent: curl/7.52.1
Accept: */*
Content-Length: 3077
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------e94f377a15b0500f
--------------------------e94f377a15b0500f
Content-Disposition: form-data; name="access_token"
<MY_ACCESS_TOKEN>
--------------------------e94f377a15b0500f
Content-Disposition: form-data; name="message"
This is the message I wanna post.
--------------------------e94f377a15b0500f
Content-Disposition: form-data; name="filedata"; filename="square.png"
Content-Type: image/png
<IMAGE_DATA>
--------------------------e94f377a15b0500f--
Внезапно меня осенило.Если параметр message отправляет сообщение, то почему бы просто не поместить туда сообщение, которое я хочу опубликовать.Также можно включить access_token.И это сработало.
Вместо устаревшего «сообщения» вы также можете использовать «заголовок», и оно также будет работать.
В любом случае, теперь я могу попытаться воспроизвести этот http-запрос из C #,Рад, что нашел это, потому что это избавляет меня от необходимости устанавливать Facebook PHP SDK только для того, чтобы увидеть, как должен формироваться такой запрос.
(В любом случае, почему так мало поддержки Facebook Graph API C #?)
Я до сих пор не представляю, как правильно отправить объект json вложения / типа / изображения / полезной нагрузки из документации Facebook.
О, хорошо.