Как разместить анимированные 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, но не анимируется.
bitbonk

Ответы:


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 пикселей, чтобы обойти сжатие
  • Изменение данных заголовка или добавление байтов (например, 3B в данных GIF) в конец файла, чтобы обойти инструменты изображения Facebook
    Изменение данных
  • Через Facebook FBML
  • Через Facebook HMTL теги в заметках

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

Второй использует злоупотребление API Facebook через приложение 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-файла (flash) в этом приложении в виде анимированного GIF-файла и публиковать его на своем Facebook!


К сожалению, приложение больше не доступно. Facebook должен включить возможность использовать картинки.
Скан

0

Facebook теперь поддерживает загрузку анимированных GIF-файлов. Если вы нажмете кнопку загрузки изображения в поле обновления статуса на странице новостей или на временной шкале, затем выберите анимированный GIF-файл, который вы хотите загрузить, он будет загружен, и Facebook преобразует его в видеофайл .mp4, который можно воспроизвести. как обычный видеофайл Facebook, включая возможность приостановки в определенных кадрах, что невозможно при просмотре обычного анимированного GIF-файла. Несмотря на то, что gif фактически был преобразован в видеофайл после загрузки, он будет иметь наложенную метку с надписью GIF.

В качестве видеофайла Facebook автоматически воспроизводит видеофайлы в новостной ленте (если у вас отключен этот параметр Facebook), поэтому он должен вести себя как анимированный GIF (постоянный цикл), так как Facebook автоматически зацикливает видео продолжительностью менее 30 секунд. длинная.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.