Come posso pubblicare GIF animate su Facebook?


22

Un amico ha pubblicato un'immagine che si stava animando direttamente nel feed dei messaggi sulla mia pagina iniziale di Facebook. Com'è possibile? Come si può fare?

Questo è l'URL utilizzato da Facebook: http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/29301_442976909814_310716489814_5773694_3162803_s.jpg

È un'immagine GIF appena rinominata .jpg? Probabilmente no.

Non so se aiuta o altro, ma ecco la parte (script) che contiene quell'URL dell'immagine:

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

La parte importante di quanto sopra sembra essere qui:

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

Non puoi semplicemente rinominare un GIF in un jpg e aspettarti che funzioni.
ChrisF

Sì, l'ho appena provato. La GIF è ancora visualizzata correttamente su Facebook ma non si anima.
Bitbonk,

Risposte:


15

Maggio 2015

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

La prima cosa da tenere a mente è che la funzione funziona con i collegamenti GIF, non con i caricamenti GIF. Almeno per ora, il tentativo di caricare la tua GIF preferita non comporterà una GIF utilizzabile e giocabile su Facebook.

[...]

Servizi come Giphy, Imgur, GFYcat e altri stanno cercando di semplificare l'integrazione di GIF di grandi dimensioni in tutto il Web

[...]

assicurati di utilizzare l'URL GIF completo di Giphy o di altri servizi GIF.

Aprile 2012 - Current Exploit utilizza l'applicazione di testo mobile per trasmettere immagini

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

L'unica cosa veramente necessaria è la animationurl, che deve essere un'immagine ospitata su Facebook.

Questi sono i modi precedentemente possibili

  • Modifica del nome file in GIF
  • Modifica delle dimensioni del file a circa 120 px per bypassare la compressione
  • Modifica dei dati dell'intestazione o aggiunta di byte (ad esempio la fine 3B nei dati GIF) alla fine del file per bypassare gli strumenti di immagine di Facebook
    Modifica dei dati
  • Tramite Facebook FBML
  • Tramite i tag HMTL di Facebook nelle note

Il primo modo di lavorare sembra condividere in qualche modo il set di gif attualmente disponibili sui server di Facebook tramite la codifica degli utenti. Non ho visto apparire nuove GIF a parte quelle che al momento girano intorno.

Il secondo utilizza un abuso dell'API di Facebook tramite un'applicazione di Facebook. Lo sviluppatore ha nascosto le GIF in un'anteprima di incorporamento del video.

Applicazione per sviluppatori

Ora, supponendo che si debba capirlo, verrebbe vietato ... perché ciò significa che il sistema di caricamento delle immagini è difettoso e che un codice pericoloso può essere eseguito nascondendosi in una GIF o in un'immagine. Sembra che Facebook Photo Team assicurerà che le GIF non rimangano più in giro.

Nathaniel Roman

Quora Image: si trattava di un bug presente sul sito per un breve periodo di tempo.  È stato risolto un po 'di tempo fa.

E in precedenza nel vecchio Wiki di sviluppo di Facebook alcuni di questi potrebbero essere cambiati ormai, ma l'essenza rimane la stessa

La piattaforma Facebook gestisce i tag img in un modo speciale. Quando si pubblica una pagina, i server di Facebook richiedono qualsiasi URL di immagine e quindi servono queste immagini, riscrivendo l'attributo src di tutti i tag img usando un dominio * .facebook.com. Ciò protegge la privacy degli utenti di Facebook e consente loro di controllare meglio la qualità del servizio delle loro immagini.

Esistono diversi motivi per l'esistenza della cache delle immagini:

  • Abbiamo bisogno di un modo per garantire un certo grado di qualità e uniformità nelle immagini visualizzate sui profili degli utenti (nessuna immagine animata, nessuna immagine da 50 MB, ecc.)
  • Dobbiamo proteggere la privacy degli utenti e non consentire alle applicazioni dannose di estrarre informazioni dalle richieste di immagini effettuate direttamente dal browser dell'utente di visualizzazione
  • Probabilmente più importante per te, la cache di immagini protegge gli sviluppatori dal carico potenzialmente enorme di servire queste immagini, mettendo invece l'onere sulle risorse di Facebook

E alla fine, come ho già detto altrove

Anche se non indicato in nessun punto del TOS,

Caricando un file certifichi di avere il diritto di distribuire questa immagine e che non viola i Termini di servizio

Quindi potresti ottenere una pacca sulla spalla per il test su un account utente di prova ma utilizzando un exploit (se trovato) su un account personale. Sono certo che finirai per vedere una chiusura del tuo account.

PS Non pensare perché, quando stai navigando sui siti, i Dipendenti di Facebook non vedono queste informazioni. Nel momento in cui un exploit è noto pubblicamente, nello stesso periodo di tempo verrà chiuso


6

Sebbene l'estensione sia jpeg, è comunque un file gif

Immagine di Firefox

Per rispondere alla tua domanda, questo è quello che ho trovato :

Quello che devi fare è caricare una piccola gif animata (circa 50 KB o meno) come foto del tuo profilo (Facebook appiattirà le gif animate troppo grandi, ma non rileverà quelle più piccole). Sarà quindi nell'album del tuo profilo. La tua icona stessa NON sarà animata. Tuttavia, la vedrai animata nella cartella delle foto del tuo profilo Facebook e, andando su quella foto e facendo clic su "condividi", apparirà sulla tua bacheca come animata.

Le miniature dei profili sono sempre generate dall'immagine di base. Se l'immagine di base è inferiore a 120x120, l'animazione rimarrà intatta attraverso entrambe le viste ridotta a icona e ingrandita. Qualunque cosa oltre quella dimensione dovrà essere ridimensionata per adattarsi come una miniatura minimizzata della galleria e perderà l'animazione, tuttavia la dimensione intera dovrebbe rimanere animata.


1

Ho cercato e scoperto che l'immagine è generata dall'applicazione http://apps.facebook.com/animated-picture/ Puoi generare file come questo da un file SWF (flash) su questa applicazione come GIF animata e pubblicarli sul tuo Facebook!


Sfortunatamente l'applicazione non è più disponibile. Facebook dovrebbe abilitare l'opzione per usare gif.
skan

0

Facebook ora supporta il caricamento nativo di file GIF animati. Se fai clic sul pulsante carica immagine nella casella di aggiornamento dello stato nella tua pagina Newsfeed o Timeline, quindi scegli il file gif animato che desideri caricare, verrà caricato e Facebook lo convertirà in un file video .mp4, che può essere riprodotto come un normale file video di Facebook, inclusa la possibilità di mettere in pausa su frame specifici, che non è un'opzione quando si visualizza un normale file gif animato. Sebbene la gif sia stata effettivamente convertita in un file video dopo il caricamento, avrà un'etichetta sovrapposta che dice GIF.

Trattandosi di un file video e Facebook riproduce automaticamente i file video nel Newsfeed (se non hai quell'impostazione di Facebook disattivata), quindi dovrebbe comportarsi proprio come una gif animata (loop costante) poiché Facebook esegue automaticamente il loop di video di meno di 30 secondi lungo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.