Як розміщувати анімовані GIF у Facebook?


22

Друг розмістив зображення, яке було анімоване безпосередньо у стрічці повідомлень на моїй стартовій сторінці у Facebook. Як це можливо? Як це можна зробити?

Це URL, яку використовує Facebook: http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/29301_442976909814_310716489814_5773694_3162803_s.jpg

Це GIF-зображення просто перейменовано на .jpg? Напевно, ні.

Я не знаю, чи допомагає це чи щось, але ось частина (сценарій), яка містить URL-адресу зображення:

<script>big_pipe.onPageletArrive({"phase":4,"id":"pagelet_photo_bar","css":["aes1F","FPnMi"],"js":["Py8xV","1k++i","9qrJd"],"onload":["PhotoTheater.init(HTML(\"\\u003cdiv id=\\\"fbPhotoTheater\\\" class=\\\"fbPhotoTheater hidden_elem narrowerWhiteBar\\\" tabindex=\\\"0\\\" role=\\\"region\\\" aria-label=\\\"Facebook-Diashow\\\" aria-busy=\\\"true\\\">\\u003cdiv class=\\\"container\\\">\\u003cdiv class=\\\"positioner\\\">\\u003ca class=\\\"uiTooltip closeTheater\\\" href=\\\"#\\\">\\u003ci class=\\\"closeImage img sp_6lzo0r sx_bbf9a4\\\">\\u003c\\\/i>\\u003cspan class=\\\"uiTooltipWrap middle left leftmiddle\\\">\\u003cspan class=\\\"uiTooltipText uiTooltipNoWrap\\\">Schlie\\u00dfen\\u003c\\\/span>\\u003c\\\/span>\\u003c\\\/a>\\u003c\\\/div>\\u003cdiv class=\\\"stageBackdrop\\\">\\u003c\\\/div>\\u003cdiv class=\\\"stageWrapper\\\">\\u003cdiv class=\\\"stage\\\">\\u003cimg src=\\\"\\\/images\\\/loaders\\\/indicator_black.gif\\\" class=\\\"spotlight\\\" \\\/> \\u003cdiv class=\\\"fbPhotosTheaterTags tagContainer\\\" id=\\\"fbPhotoTheaterTags\\\">\\u003cdiv class=\\\"tagsWrapper\\\">\\u003c\\\/div>\\u003c\\\/div>\\u003c\\\/div>\\u003cdiv class=\\\"videoStage\\\"> \\u003c\\\/div>\\u003cdiv id=\\\"fbPhotoTheaterError\\\" class=\\\"fbPhotoTheaterError hidden_elem stageError\\\">\\u003c\\\/div>\\u003c\\\/div>\\u003cdiv class=\\\"stageActions\\\" id=\\\"fbPhotoTheaterStageActions\\\">\\u003ca class=\\\"prev\\\" href=\\\"#\\\" title=\\\"Zur\\u00fcck\\\">\\u003c\\\/a>\\u003ca class=\\\"next\\\" href=\\\"#\\\" title=\\\"Weiter\\\">\\u003c\\\/a>\\u003cdiv class=\\\"fbPhotoTheaterButtons\\\" id=\\\"fbPhotoTheaterButtons\\\">\\u003c\\\/div>\\u003c\\\/div>\\u003cdiv class=\\\"photoInfoWrapper\\\">\\u003ctable class=\\\"uiGrid fbPhotoTheaterGrid photoInfo\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">\\u003ctbody>\\u003ctr>\\u003ctd class=\\\"vTop detailsCell\\\">\\u003cdiv class=\\\"detailsContainer\\\">\\u003cdiv id=\\\"fbPhotoTheaterTitle\\\">\\u003c\\\/div>\\u003cspan id=\\\"fbPhotoTheaterContributors\\\">\\u003c\\\/span> \\u003cspan class=\\\"fsm fwn fcg\\\" id=\\\"fbPhotoTheaterCount\\\">\\u003c\\\/span>\\u003chr class=\\\"mvm\\\" \\\/>\\u003cdiv id=\\\"fbPhotosTheaterActions\\\" class=\\\"fbPhotosTheaterActions\\\">\\u003c\\\/div>\\u003c\\\/div>\\u003c\\\/td>\\u003ctd class=\\\"vTop commentsCell\\\">\\u003cdiv class=\\\"commentsContainer\\\">\\u003cdiv class=\\\"fbPhotosTaglist mbm tagpile\\\" id=\\\"fbPhotosTaglist\\\">\\u003cspan class=\\\"caption fsm fwn fcg\\\">Auf diesem Foto: \\u003c\\\/span>\\u003c\\\/div>\\u003cdiv id=\\\"fbPhotoTheaterUfi\\\">\\u003cform rel=\\\"async\\\" class=\\\"commentable_item autoexpand_mode\\\" method=\\\"post\\\" action=\\\"\\\/ajax\\\/ufi\\\/modify.php\\\" onsubmit=\\\"return Event.__inlineSubmit(this,event)\\\">\\u003cinput type=\\\"hidden\\\" name=\\\"charset_test\\\" value=\\\"&euro;,&acute;,\\u20ac,\\u00b4,\\u6c34,\\u0414,\\u0404\\\" \\\/>\\u003cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"post_form_id\\\" value=\\\"10711e587b061f39240641dbc74019ac\\\" \\\/>\\u003cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQBfQgRs\\\" autocomplete=\\\"off\\\" \\\/>\\u003c\\\/form>\\u003c\\\/div>\\u003c\\\/div>\\u003c\\\/td>\\u003ctd class=\\\"vTop adsCell\\\">\\u003cdiv class=\\\"adsContainer\\\">\\u003cdiv class=\\\"clearfix\\\">\\u003cdiv id=\\\"fbPhotoTheaterEgo\\\" class=\\\"fbPhotoTheaterEgo\\\">\\u003c\\\/div>\\u003cdiv class=\\\"fbPhotoTheaterEgoSponsored fss fwn fcg\\\">Gesponsert\\u003c\\\/div>\\u003c\\\/div>\\u003c\\\/div>\\u003c\\\/td>\\u003c\\\/tr>\\u003c\\\/tbody>\\u003c\\\/table>\\u003c\\\/div>\\u003c\\\/div>\\u003c\\\/div>\"));"],"onafterload":["Bootloader.loadComponents([\"fb-photos-theater-css\"], function(){  });"],"content":{"pagelet_photo_bar":"\u003cdiv class=\"mbm fbProfilePhotoStrip\">\u003cul class=\"fbProfilePhotoBar\">\u003cli class=\"stat_elem\" id=\"thumb193067094054363\">\u003ca class=\"uiMediaThumb fbProfilePhotoThumb uiMediaThumbMedium\" href=\"http:\/\/www.facebook.com\/photo.php?fbid=193067094054363&amp;set=t.100000400858474&amp;type=1\" rel=\"theater\" ajaxify=\"http:\/\/www.facebook.com\/photo.php?fbid=193067094054363&amp;set=t.100000400858474&amp;type=1&amp;src=http\u00253A\u00252F\u00252Fa1.sphotos.ak.fbcdn.net\u00252Fhphotos-ak-snc6\u00252F179200_193067094054363_100000532222327_655777_5428850_n.jpg&amp;theater\">\u003ci style=\"background-image: url(http:\/\/photos-a.ak.fbcdn.net\/hphotos-ak-snc6\/179200_193067094054363_100000532222327_655777_5428850_s.jpg); background-position: -33px -17px;\">\u003c\/i>\u003c\/a>\u003c\/li>\u003cli class=\"stat_elem\" id=\"thumb185312914825402\">\u003ca class=\"uiMediaThumb fbProfilePhotoThumb uiMediaThumbMedium\" href=\"http:\/\/www.facebook.com\/photo.php?fbid=185312914825402&amp;set=t.100000400858474&amp;type=1\" rel=\"theater\" ajaxify=\"http:\/\/www.facebook.com\/photo.php?fbid=185312914825402&amp;set=t.100000400858474&amp;type=1&amp;src=http\u00253A\u00252F\u00252Fa8.sphotos.ak.fbcdn.net\u00252Fhphotos-ak-snc6\u00252F165369_185312914825402_100000400858474_523262_6205304_n.jpg&amp;theater\">\u003ci style=\"background-image: url(http:\/\/photos-h.ak.fbcdn.net\/hphotos-ak-snc6\/165369_185312914825402_100000400858474_523262_6205304_s.jpg); background-position: -22px -30px;\">\u003c\/i>\u003c\/a>\u003c\/li>\u003cli class=\"stat_elem\" id=\"thumb175015452521815\">\u003ca class=\"uiMediaThumb fbProfilePhotoThumb uiMediaThumbMedium\" href=\"http:\/\/www.facebook.com\/photo.php?fbid=175015452521815&amp;set=a.175015445855149.34462.100000400858474&amp;type=1\" rel=\"theater\" ajaxify=\"http:\/\/www.facebook.com\/photo.php?fbid=175015452521815&amp;set=a.175015445855149.34462.100000400858474&amp;type=1&amp;src=http\u00253A\u00252F\u00252Fa6.sphotos.ak.fbcdn.net\u00252Fhphotos-ak-snc4\u00252F156854_175015452521815_100000400858474_459703_1557976_n.jpg&amp;theater\">\u003ci style=\"background-image: url(http:\/\/photos-f.ak.fbcdn.net\/hphotos-ak-snc4\/156854_175015452521815_100000400858474_459703_1557976_s.jpg);\">\u003c\/i>\u003c\/a>\u003c\/li>\u003cli class=\"stat_elem\">\u003cdiv class=\"fbProfilePhotoThumbEmpty\">\u003c\/div>\u003c\/li>\u003cli class=\"stat_elem\">\u003cdiv class=\"fbProfilePhotoThumbEmpty\">\u003c\/div>\u003c\/li>\u003c\/ul>\u003c\/div>"}});</script> 

Тут, мабуть, важлива частина сказаного:

style=\"background-image: url(http:\/\/photos-f.ak.fbcdn.net\/hphotos-ak-snc4\/156854_175015452521815_100000400858474_459703_1557976_s.jpg);\">

Ви не можете просто перейменувати gif в jpg і очікувати, що він працює.
ChrisF

Так, я просто спробував це. GIF все ще відображається правильно у facebook, але не анімує.
бітбонк

Відповіді:


15

Травень 2015 року

http://mashable.com/2015/05/29/facebook-gif-support/

Перше, що слід пам’ятати, це те, що функція працює з посиланнями GIF, а не з GIF-завантаженнями. Принаймні поки що спроба завантажити свій улюблений GIF не призведе до зручного використання відтворення GIF у Facebook.

[...]

Такі сервіси, як Giphy, Imgur, GFYcat та інші, намагаються полегшити вбудовування великих GIF-файлів в Інтернеті

[...]

переконайтеся, що ви використовуєте повну URL-адресу GIF від Giphy чи інших GIF-сервісів.

Квітень 2012 - Current Exploit використовує мобільний текстовий додаток для передачі зображень

http://www.facebook.com/connect/uiserver.php?app_id=2915120374
&method=stream_publish
&redirect_uri=http://www.facebook.com
&from=SENDERID
&target_id=RECEIVERID
&action_links=[{"text":"Your Text Here",
                "href":"http://www.blank.com/"}]
&attachment={'media':[{'type':'image',
                       'src':'animationurl',
                       'href':'anyurl'}],
             'description':'LongDescription',
             'properties':{'Anything':{'text':'Anything',
                                       'href':'anyurl'}}}

Єдине, що дійсно потрібно - це зображення animationurl, яке повинно бути розміщеним у Facebook.

Це шляхи, які раніше були можливі

  • Зміна імені файлу на GIF
  • Зміна розмірів файлу приблизно до 120 px для обходу стиснення
  • Зміна даних заголовка або додавання байтів (наприклад, закінчення 3B в GIF-дані) до кінця файлу для обходу інструментів зображення Facebook
    Зміна даних
  • Через Facebook FBML
  • Через теги HMTL у Facebook у примітках

Першим робочим способом, здається, є якимось чином обмін наявними на даний момент набором gif-файлів на серверах Facebook через тегів користувачів на ньому. Я не бачив, щоб якісь нові GIF з’являлися окрім тих, які зараз кружляють навколо.

Другий використовує зловживання API API через додаток Facebook. Розробник приховав GIF-файли у попередньому перегляді відео.

Додаток для розробників

Тепер, якщо припустити, що це потрібно було зрозуміти, вам заборонили б ... тому що це означає, що система завантаження зображень є помилковою, і небезпечний код може бути виконаний, приховавшись у GIF або зображенні. Здається, що Facebook Photo Team забезпечить, щоб GIF більше не залишалися.

Натаніел Роман

Зображення Quora: Це помилка, яка була на сайті лише короткий проміжок часу.  Це зафіксувалося деякий час назад.

А раніше в старому Facebook Dev Wiki щось із цього могло змінитися, але суть залишається такою ж

Платформа Facebook особливим чином обробляє теги img. Опублікувавши сторінку, сервери Facebook запитують будь-які URL-адреси зображень, а потім подають ці зображення, переписуючи атрибут src всіх тегів img, використовуючи домен * .facebook.com. Це захищає конфіденційність користувачів Facebook і дозволяє їм краще контролювати якість обслуговування своїх зображень.

Існує кілька причин існування кеш-зображень:

  • Нам потрібен спосіб забезпечити певний рівень якості та рівномірності зображень, що відображаються у профілях користувачів (відсутні анімовані зображення, зображення 50 Мб тощо)
  • Нам потрібно захищати конфіденційність користувачів і не дозволяти шкідливим програмам отримувати інформацію з запитів зображень, що надходять безпосередньо з веб-переглядача користувача
  • Мабуть, найважливіше для вас, кеш зображень захищає розробників від потенційно величезного навантаження на обслуговування цих зображень, накладаючи навантаження на ресурси Facebook

І врешті-решт, як я вже згадував деінде

Крім того, що не вказано ніде в TOS,

Завантажуючи файл, ви підтверджуєте, що маєте право на розповсюдження цієї фотографії та що вона не порушує Умови надання послуг

Таким чином, ви можете отримати погладжування на звороті для тестування на тестовому обліковому записі користувача, але за допомогою експлуатації (якщо вона знайдена) в особистому обліковому записі. Я впевнений, що ви побачите припинення вашого акаунта.

PS Не думайте, тому що під час перегляду сайтів працівники Facebook не бачать цієї інформації. Миттєво, коли про вибух буде відомий публічно, за той самий час він буде закритий


6

Хоча розширення jpeg, це все-таки gif-файл

Зображення Firefox

Щоб відповісти на ваше запитання, я ось що знайшов :

Що ви повинні зробити, це завантажити невеликий анімований gif (близько 50 Кб або менше) у якості вашої фотографії профілю (Facebook розгладить анімовані gif-файли, які мають великі розміри, але не виявлять менші). Це буде в альбомі вашого профілю. Ваш значок НЕ буде анімований. Однак ви побачите його як анімоване у вашій папці фотографій профілю Facebook, і, перейшовши на цю фотографію та натиснувши на «Поділитися», вона з’явиться на вашій стіні як анімована.

Ескізи профілю завжди створюються з базового зображення. Якщо базове зображення знаходиться під розміром 120x120, то анімація залишатиметься недоторканою через мінімізовані та максимізовані представлення. Будь-який розмір, що перевищує цей розмір, потрібно змінити, щоб він міг зменшити мініатюрну галерею, і він втратить анімацію, однак повний розмір повинен залишатися анімованим.


1

Я дослідив і виявив, що зображення генерується додатком http://apps.facebook.com/animated-picture/ Ви можете генерувати такі файли з SWF (спалаху) у цій програмі як анімований GIF та публікувати у своєму facebook!


На жаль, програма більше не доступна. Facebook повинен включити можливість використання gif-файлів.
скан

0

Зараз Facebook підтримує завантаження анімованих файлів gif на самому світі. Якщо натиснути кнопку завантаження зображення у вікні оновлення статусу на сторінці Newsfeed або Timeline, то виберіть анімований файл gif, який ви хочете завантажити, він буде завантажений, і Facebook перетворить його у файл .mp4, який можна відтворити. як звичайний відеофайл у Facebook, включаючи можливість паузи на певних кадрах, що не є можливим під час перегляду звичайного анімованого файлу gif. Хоча gif фактично перетворений у відеофайл після завантаження, він матиме накладений ярлик із надписом GIF.

Як його відеофайл, і Facebook автоматично відтворює відеофайли у Newsfeed (якщо у вас не вимкнено налаштування Facebook), тож він повинен вести себе так само, як анімований gif (постійний цикл), оскільки Facebook автоматично циклізує відео, які не перевищують 30 секунд. довго.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.