如何在Facebook上发布GIF动画?


22

一个朋友在我的Facebook起始页上的消息源中直接发布了动画图像。这怎么可能?如何才能做到这一点?

这是Facebook使用的URL: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并期望它能正常工作。
克里斯·

是的,我只是尝试过。GIF仍正确显示在facebook上,但没有动画。
bitbonk 2011年

Answers:


15

2015年5月

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

首先要记住的是,该功能适用​​于GIF链接,而不适用于GIF上传。至少到目前为止,尝试上传您喜欢的GIF不会在Facebook上产生可用的可播放GIF。

[...]

Giphy,Imgur,GFYcat等服务正在努力简化在网络上嵌入大型GIF的工作

[...]

确保您使用的是Giphy或其他GIF服务提供的完整GIF网址。

20124月 -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像素左右以绕过压缩
  • 更改标题数据或在文件末尾添加字节(例如GIF数据中的结尾3B)以绕过Facebook图像工具
    资料变更
  • 通过Facebook FBML
  • 通过Facebook注释中的HMTL标签

第一种工作方法似乎是以某种方式通过在其中标记用户来在Facebook服务器上共享一组可用的gif。除了目前圈出的GIF之外,我还没有看到任何新的GIF。

第二种是通过Facebook应用程序滥用Facebook API。开发人员将GIF隐藏在视频嵌入预览中。

开发人员应用

现在,假设有人发现了该文件,您将被禁止...因为这意味着图像上传系统存在缺陷,并且可以通过隐藏在GIF或图片中来执行危险代码。看来,Facebook摄影团队将确保GIF不再存在。

纳撒尼尔·罗曼(Nathaniel Roman)

Quora图像:那是一个短时间存在于网站上的错误。 它修复了一段时间。

以前在旧版Facebook Dev Wiki中可能有些改变了,但要旨仍然相同

Facebook Platform以特殊方式处理img标签。发布页面时,Facebook服务器请求任何图像URL,然后提供这些图像,并使用* .facebook.com域重写所有img标签的src属性。这可以保护Facebook用户的隐私,并允许他们更好地控制其图像服务的质量。

存在图像缓存的原因有很多:

  • 我们需要一种方法来确保用户个人资料上显示的图像(没有动画图像,没有50 MB图像等)达到一定程度的质量和均匀性。
  • 我们需要保护用户的隐私,不允许恶意应用从直接从查看用户的浏览器发出的图像请求中提取信息
  • 对您来说可能最重要的是,图像缓存使开发人员免于为这些图像提供服务的巨大负担,反而将负担加在了Facebook的资源上

最后,正如我在其他地方提到的

另外,尽管未在服务条款中任何地方说明,

通过上传文件,您可以证明自己有权分发此图片,并且该图片不违反服务条款

因此,您可能会在背面轻拍一下,以在“测试用户帐户”上进行测试,但在个人帐户上使用漏洞利用程序(如果找到)。我相信您最终会看到帐户被终止。

PS不要以为,因为当您浏览网站时,Facebook员工不会看到此信息。漏洞被公开时,将在相同的时间内将其关闭


6

尽管扩展名是jpeg,但仍然是gif文件

Firefox图片

为了回答您的问题,这是我发现的

您需要做的是上传一个小的gif动画(大约50 KB或更少)作为您的个人资料照片(Facebook将平展较大的gif动画,但不会检测到较小的gif)。然后它将出现在您的个人资料的相册中。您的图标本身将不会动画。但是,您将在Facebook个人资料照片文件夹中将其视为动画,然后转到该照片并单击“共享”,它将以动画形式显示在您的墙上。

配置文件缩略图始终是从基础图像生成的。如果基本图像在120x120以下,则动画将在最小化和最大化视图中保持完整。超过该大小的任何内容都需要调整大小以适合最小化的画廊缩略图,并且会丢失动画,但是完整大小的图片应保持动画状态。



0

Facebook现在支持本地上传动画gif文件。如果您在“新闻源”或“时间轴”页面上的状态更新框中单击“上传图像”按钮,然后选择要上传的gif动画文件,它将被上传,Facebook会将其转换为.mp4视频文件,然后可以播放就像普通的Facebook视频文件一样,包括在特定帧处暂停的功能,当查看普通的gif动画文件时,这不是选项。尽管gif在上传后实际上已经转换为视频文件,但它会带有覆盖标签“ GIF”。

作为其视频文件,Facebook会在Newsfeed中自动播放视频文件(如果您没有关闭Facebook设置),因此它的行为就像动画gif(恒定循环)一样,因为Facebook自动循环播放30秒以下的视频长。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.