Размещение встроенной ссылки на видео с помощью API Graph Facebook - PullRequest
40 голосов
/ 08 марта 2011

При ручном присоединении ссылки на видео (с YouTube, Vimeo и т. Д.) К сообщению с помощью веб-интерфейса Facebook, Facebook автоматически распознает ссылку как видео и позволяет полученному сообщению о состоянии воспроизводить видео встроенным образом.Видео отображается как встроенный проигрыватель в стене или в новостной ленте.


Вот пример того, как выглядит встроенное видео после публикации вручную.

Embedded Video


При публикации ссылки с использованием Graph API видео не внедряется.

curl -F 'access_token=...' \
     -F 'message=Link to YouTube' \
     -F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
     https://graph.facebook.com/me/feed

Not-Embedded Video


Я подозреваю, что ответ связан с аргументом source, но я не уверен, какой URL должен быть там.Указание того же URL-адреса приводит к публикации без миниатюрного изображения.

source : URL-адрес Flash-фильма или видеофайла, который будет встроен в сообщение.read_stream.

Как можно реализовать такое же встроенное поведение, используя только API Graph?

Ответы [ 7 ]

49 голосов
/ 15 марта 2011

Похоже, что вы должны извлечь URL-адрес фактического SWF на странице и миниатюрное изображение самостоятельно. Например, это похоже на работу:

curl -F 'access_token=...' \
     -F 'message=Link to YouTube' \
     -F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
     -F 'source=http://www.youtube.com/v/3aICB2mUu2k' \
     -F 'picture=http://img.youtube.com/vi/3aICB2mUu2k/0.jpg' \
     https://graph.facebook.com/me/feed

Похоже, что вы можете создать действительный источник и изображение из URL страницы. URL выглядит как http://www.youtube.com/watch?v=<code>; возьмите код (3aICB2mUu2k здесь) и вставьте его в URL-адреса http://www.youtube.com/e/<code> для источника и http://img.youtube.com/vi/<code>/0.jpg для изображения.

6 голосов
/ 18 января 2012

Вот как можно разместить видео вручную для YOUTUBE и VIMEO (сложно найти в Интернете).В частности, если вы хотите, чтобы значение LINK указывало на веб-сайт пользователя / сообщение в блоге, где оно происходит.

4 голосов
/ 05 февраля 2012

Совместное использование в качестве ссылки с / links вместо / feed, кажется, работает лучше.Видео YouTube, Vimeo и Facebook встраиваются, как если бы они размещались вручную.

curl -F 'access_token=...' \
     -F 'message=Link to YouTube' \
     -F 'link=http://www.youtube.com/watch?v=3aICB2mUu2k' \
     https://graph.facebook.com/me/links
1 голос
/ 28 февраля 2014

Не будет работать для публикации в ГРУППАХ на / feeds или / links. Смотрите здесь . Пожалуйста, опишите проблему, чтобы исправить ее в ближайшее время.

/ links является дубликатом / feeds, который отображаются только сообщения типа ссылки, опубликованные самим пользователем.

1 голос
/ 19 марта 2012

Не используйте / feed, используйте / links (https://graph.facebook.com/me/links/) и просто POST-параметры "message" и "link", используя формат URL YouTube / watch? V = ZL7nV7WwJKg./ feed никогда не работал для меня, он просто разместил статическую графику и ссылку, но я хотел, чтобы он действительно воспроизводился встроенным на Facebook, как это происходит, когда вы делитесь видео с YouTube на Facebook.Работает как шарм.

0 голосов
/ 26 апреля 2014

Совместное использование с помощью API любого файла .swf или видео не приведет к отображению миниатюры на Facebook, кроме YouTube. И это в соответствии с дизайном на Facebook. Проверьте эту ссылку

https://developers.facebook.com/bugs/589975484398226?browse=external_tasks_search_results_526fc388b99e18881434478

0 голосов
/ 24 августа 2011

Вместо этого попробуйте опубликовать ссылку как атрибут сообщения, у меня это так работает.

message = your message + link
...