Wie poste ich animierte GIFs auf Facebook?

22

Ein Freund hat ein Bild, das gerade animiert wurde, direkt in den Nachrichten-Feed auf meiner Facebook-Startseite gestellt. Wie ist das möglich? Wie geht das?

Dies ist die URL, die von Facebook verwendet wird: http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/29301_442976909814_310716489814_5773694_3162803_s.jpg

Ist es ein GIF-Bild, das gerade umbenannt wurde .jpg? Wahrscheinlich nicht.

Ich weiß nicht, ob es hilft oder nicht, aber hier ist der Teil (Skript), der diese Bild-URL enthält:

<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> 

Der wichtige Teil des oben genannten scheint hier zu sein:

style=\"background-image: url(http:\/\/photos-f.ak.fbcdn.net\/hphotos-ak-snc4\/156854_175015452521815_100000400858474_459703_1557976_s.jpg);\">
bitbonk
quelle
Sie können ein GIF nicht einfach in ein JPG umbenennen und erwarten, dass es funktioniert.
ChrisF
Ja, das habe ich gerade ausprobiert. Das GIF wird bei Facebook weiterhin korrekt angezeigt, jedoch nicht animiert.
Bitbonk

Antworten:

15

Mai 2015

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

Als Erstes muss beachtet werden, dass die Funktion mit GIF-Links und nicht mit GIF-Uploads funktioniert. Zumindest für den Moment führt der Versuch, Ihr Lieblings-GIF hochzuladen, nicht zu einem verwendbaren, spielbaren GIF auf Facebook.

[...]

Dienste wie Giphy, Imgur, GFYcat und andere versuchen, das Einbetten großer GIFs im gesamten Web zu vereinfachen

[...]

Stellen Sie sicher, dass Sie die vollständige GIF-URL von Giphy oder anderen GIF-Diensten verwenden.

April 2012 - Current Exploit verwendet die mobile Textanwendung zum Weitergeben von Bildern

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'}}}

Das einzige, was wirklich benötigt wird animationurl, ist das , was ein auf Facebook gehostetes Bild sein muss.

Dies sind die Wege, die bisher möglich waren

  • Ändern des Dateinamens in GIF
  • Ändern der Dateigröße auf ca. 120 Pixel, um die Komprimierung zu umgehen
  • Ändern von Header-Daten oder Hinzufügen von Bytes (z. B. die Endung 3B in den GIF-Daten) am Ende der Datei, um die Facebook-Bildwerkzeuge zu umgehen
    Datenänderung
  • Über Facebook FBML
  • Über Facebook HMTL-Tags in Notizen

Die erste Möglichkeit scheint darin zu bestehen, die derzeit verfügbaren Gifs auf Facebook-Servern zu teilen, indem Benutzer darin markiert werden. Ich habe keine neuen GIFs außer denen gesehen, die derzeit umkreisen.

Die zweite nutzt einen Missbrauch der Facebook-API über eine Facebook-Anwendung. Der Entwickler versteckte die GIFs in einer Vorschau zum Einbetten von Videos.

Entwickleranwendung

Angenommen, einer würde es herausfinden, dann wären Sie gesperrt ... weil dies bedeutet, dass das Bild-Upload-System fehlerhaft ist und gefährlicher Code ausgeführt werden kann, indem er in einem GIF oder Bild verborgen wird. Es scheint, dass Facebook Photo Team dafür sorgen wird, dass GIFs nicht mehr in der Nähe bleiben.

Nathaniel Roman

Quora Image: Das war ein Fehler, der nur für kurze Zeit auf der Website war.  Es wurde vor einiger Zeit behoben.

Und früher im alten Facebook Dev Wiki hat sich dies vielleicht inzwischen geändert, aber der Kern bleibt derselbe

Die Facebook-Plattform behandelt IMG-Tags auf besondere Weise. Beim Veröffentlichen einer Seite fordern Facebook-Server Bild-URLs an und liefern diese Bilder. Dabei wird das src-Attribut aller img-Tags unter Verwendung einer * .facebook.com-Domain neu geschrieben. Dies schützt die Privatsphäre der Facebook-Nutzer und ermöglicht ihnen eine bessere Kontrolle der Servicequalität ihrer Bilder.

Es gibt mehrere Gründe für das Vorhandensein des Bildcaches:

  • Wir brauchen eine Möglichkeit, um ein gewisses Maß an Qualität und Einheitlichkeit der in den Benutzerprofilen angezeigten Bilder zu gewährleisten (keine animierten Bilder, keine 50-MB-Bilder usw.).
  • Wir müssen die Privatsphäre der Benutzer schützen und dürfen nicht zulassen, dass böswillige Anwendungen Informationen aus Bildanfragen extrahieren, die direkt vom Browser eines angezeigten Benutzers stammen
  • Der für Sie wahrscheinlich wichtigste Bild-Cache schützt Entwickler vor der potenziell enormen Belastung durch die Bereitstellung dieser Bilder und belastet stattdessen die Ressourcen von Facebook

Und am Ende, wie ich schon erwähnt habe

Auch wenn nirgendwo in den AGB angegeben,

Durch das Hochladen einer Datei bestätigen Sie, dass Sie das Recht haben, dieses Bild zu verbreiten und dass es nicht gegen die Nutzungsbedingungen verstößt

Sie erhalten möglicherweise ein Pat auf der Rückseite, wenn Sie mit einem Testbenutzerkonto testen, aber einen Exploit (falls gefunden) für ein persönliches Konto verwenden. Ich bin mir sicher, dass Sie am Ende eine Kündigung Ihres Kontos sehen werden.

PS: Denken Sie nicht, dass Facebook-Mitarbeiter diese Informationen beim Surfen auf Websites nicht sehen. Sobald ein Exploit öffentlich bekannt ist, wird er in der gleichen Zeitspanne heruntergefahren

phwd
quelle
6

Obwohl die Erweiterung JPEG ist, ist es immer noch eine GIF-Datei

Firefox-Image

Um Ihre Frage zu beantworten, habe ich Folgendes gefunden :

Sie müssen lediglich ein kleines animiertes GIF (ca. 50 KB oder weniger) als Ihr Profilfoto hochladen (Facebook reduziert animierte GIFs, die zu groß sind, die kleineren jedoch nicht erkennen). Es wird dann in Ihrem Profilalbum sein. Ihr Icon selbst wird NICHT animiert. Sie sehen es jedoch als animiert in Ihrem Ordner mit den Facebook-Profilfotos. Wenn Sie zu diesem Foto gehen und auf "Freigeben" klicken, wird es als animiert an Ihrer Wand angezeigt.

Profil-Thumbnails werden immer aus dem Basis-Image generiert. Wenn das Basisbild kleiner als 120 x 120 ist, bleibt die Animation sowohl in der minimierten als auch in der maximierten Ansicht erhalten. Alles über dieser Größe muss so angepasst werden, dass es als minimiertes Miniaturbild der Galerie angezeigt wird. Die Animation geht verloren, die volle Größe sollte jedoch animiert bleiben.

Sathyajith Bhat
quelle
1

Ich habe nachgeforscht und festgestellt, dass das Bild von der Anwendung http://apps.facebook.com/animated-picture/ generiert wird. Sie können solche Dateien von einer SWF (Flash) in dieser Anwendung als animiertes GIF generieren und auf Ihrem Facebook veröffentlichen!

Fábio Colella
quelle
Leider ist die Anwendung nicht mehr verfügbar. Facebook sollte die Option zur Verwendung von Gifs aktivieren.
27.
0

Facebook unterstützt jetzt das native Hochladen von animierten GIF-Dateien. Wenn Sie auf der Seite "Newsfeed" oder "Timeline" im Feld "Statusaktualisierung" auf die Schaltfläche "Bild hochladen" klicken und die hochzuladende animierte GIF-Datei auswählen, wird sie hochgeladen und von Facebook in eine MP4-Videodatei konvertiert, die wiedergegeben werden kann Wie eine normale Facebook-Videodatei, einschließlich der Möglichkeit, bei bestimmten Frames eine Pause einzulegen, was beim Anzeigen einer normalen animierten GIF-Datei nicht möglich ist. Obwohl das GIF nach dem Hochladen tatsächlich in eine Videodatei konvertiert wurde, enthält es ein Overlay-Label mit der Aufschrift GIF.

Da es sich um eine Videodatei handelt und Facebook Videodateien im Newsfeed automatisch abspielt (wenn Sie diese Facebook-Einstellung nicht deaktiviert haben), sollte es sich wie ein animiertes GIF verhalten (ständige Schleife), da Facebook automatisch Videos abspielt, die kürzer als 30 Sekunden sind lange.

Mack Nordstrum
quelle