- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我从 Facebook 请求照片时,一些 url 是这样的:
https://{hidden_for_privacy}79141548_n.jpg
还有人是这样的:
https://{hidden_for_privacy}23364315_n.jpg?oh=c566c56ca9fd7eb1ed5d8bfca4255e84&oe=544AF123&__gda__=1414682395_6d2cb778f5b2c857d1be1c781e81cdfa
第二个有一些额外的 GET 参数(哦,oe 和 __gda_ _(空格是为了防止粗体)。
当这些参数存在时,图像将在几天后失效,因为这些值会不同(您可以通过执行新的 API 调用来检查这一点以获取相同的照片)。
这些参数是什么意思,它们如何与最大时间范围相关联?
谢谢!
最佳答案
我知道一些历史和它的目的。
原来facebook的图片url是这样的
https://{*snipped*}/XXXXXXXXXXX_b.jpg
但是有超过可用的图像大小,因此人们可以访问缩略图可以简单地将后缀 _b 替换为 _n
(所以现在是https://{*snipped*}/XXXXXXXXXXX_n.jpg)
访问更大版本的图像(如果可用)。
一段时间后,Facebook 实现了中央图像系统,可以根据要求动态裁剪和调整图像大小。
此时 facebook 提供的 url 可能如下所示:
https://{*snipped*}.fbcdn.net/hprofile-xxx1/v/t1.0-1/p32x32/12345678_123412341234123_4123412341234123412_n.jpg
当人们看到 url 时,他们的好奇心就会升起。
让我们尝试从 url 中删除一些参数。
https://{*snipped*}.fbcdn.net/hprofile-xxx1/v/12345678_123412341234123_4123412341234123412_n.jpg
他们得到的是他们可能从 facebook 服务器获得的最大和最完整的图像版本。
这个方法一直有效。
当人们在他们的电子邮件中看到图片(主要是个人资料图片)时,他们甚至无需登录 facebook 即可获得完整版本的图片。
它在任何地方都有效,包括私有(private)头像。
facebook 的快速修复和最便宜的解决方案是使用某种签名算法对请求路径进行签名。
我猜他们使用 HMAC 作为核心算法,并从包括请求路径在内的各种来源获取 HMAC 输入。
这将确保只有拥有 HMAC key 的一方才能生成有效的 url。 (大概只是 facebook)
现在旧问题已解决,您不能再使用它了,但是有不止一个问题可以通过添加 MAC 来解决。
图片访问权限失效。
假设人们曾经发布过他们的照片(现在其他人可以同时拥有有效的请求路径和来自 Facebook 的签名),后来他们改变了主意并将照片设为私有(private)。
但是,拥有有效 url 和签名的人仍然可以从 facebook 服务器获取图像。
要用超便宜的资源解决这个问题,考虑到他们已经实现了 HMAC 计算。
(并掩盖了这样一个事实,即当您删除图片时,Facebook 实际上并没有从他们的系统中删除您的图片。)
他们决定将从时间戳派生的值混合到 HMAC 的输入中。
(有关类似用法,请参阅 RFC-6238)
因此需要定期从 facebook 刷新签名才能访问照片。
这用非常便宜的额外资源解决了后一个问题。
给你。
Facebook 参数背后的一些历史和基本原理。
我确信没有关于时间范围的官方文件,但考虑到现在您知道您想要的时间范围的值是固定且可预测的,您自己做一些实验应该不难。
关于Facebook photo获取参数和照片可用多长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656524/
我为我们的业务创建了一个 Facebook 页面,我创建了一个 Facebook 应用程序来获取 AppID,以便在 Facebook 插件中使用它。 我注意到 Facebook 应用程序的页面看起来
是否有可能知道哪个 Facebook 用户点击了我的应用用户在 Facebook 上分享的链接? 为了清楚起见,让我改写一下:我想知道我的应用用户的哪些 friend 点击了他的共享链接。 感谢任何提
我正在浏览 facebook pixel,对 facebook pixel 如何知道哪个转化来自哪个 facebook 广告感到很困惑? 假设我有这个 url http://example.com安装
我正在开发 sucsongmoi.net(越南语),当浏览者从他们的墙上分享网站链接时,一些链接 facebook 获得描述和图像,一些链接 facebook 无法获得描述和图像。 例如:分享 suc
一位同事错误地设置了个人 Facebook 页面;它应该是一个企业 Facebook 页面。 个人页面上有几个 friend 需要重定向到正确的 Facebook 业务页面。 我可以将用户从错误的个人
在 Facebook 上,当您转到“编辑我的个人资料”>“艺术和娱乐”时,会有一个“电影”自动完成小部件,它会在您输入电影时推荐电影。 因此,如果您输入“Jones”,它将开始建议: 印第安纳琼斯 布
我在我的网页上使用 Facebook 登录。首次登录时,Facebook 登录应用程序会请求获取用户数据的权限。 有什么方法可以改善这个问题,以请求喜欢我的 Facebook 页面的许可?用户点击后,
我需要知道是否可以将现有的 Facebook 页面(类别:应用程序页面)链接到 Facebook 应用程序?当我进入 Facebook 应用程序设置时,他们建议创建一个新页面。但我需要的只是链接到现有
我的网站应用程序具有通过 Facebook 登录进行登录的功能。为此,我的应用程序出现在 Facebook 上。使用 Facebook 登录工作正常。 但应用程序具有将 Facebook 帐户链接和取
我正在制作一个应用程序,让人们可以在 Facebook 上与特定的 friend 分享内容。示例:Alice 使用我的应用程序,她与 Bob 分享了一篇文章,Bob 是她的 Facebook 好友。现
我正在按照列出的说明进行操作 http://docs.appcelerator.com/platform/latest/#!/api/Modules.Facebook 并查看 Arrow 示例目录中的
假设我有一个餐厅的商业网站,一位顾客为一大群人预订了一张 table 。有没有一种方法可以让客户有机会在餐厅网站上创建 Facebook 事件,作为预订流程的一部分。我知道客户必须以某种方式从餐厅网站
我想让我的用户将他们的用户帐户与 Facebook 或 Twitter 相关联,并允许他们使用他们的 Facebook/Twitter 帐户登录我的服务器,而不是使用传统的用户名/密码。与StackO
我们有一个面子书页面。我们添加了一个自定义 FBML 选项卡。现在我们要添加评论面子书插件。我尝试添加一个脚本,我从 Face book Social Plug in .代码是 之后我将此脚本放入自
大家好 请帮我找到关于以下的官方信息: 1) 什么是“FaceBook 登录” 2) 什么是“FaceBook Connect” 谢谢 最佳答案 你可以在那里找到你需要的一切: http://deve
这是最奇怪的事情。我有非常简单的 CF 代码,查看 cgi.HTTP_REFERER。简单地说,它查看推荐人。如果链接是从我们的主要网站域之外单击的,它会显示一些内容。否则,什么也不会发生。所以,如果
我还是 Facebook Graph API 的新手,正在尝试开始使用 Facebook 地点搜索。 (按位置搜索地点) https://graph.facebook.com/search?type=
我不想开设 Facebook 帐户,但我被要求为需要使用 Facebook API 的应用程序开发功能。有没有一种方法可以开发这些功能并使用 Facebook API,而无需开设个人 Facebook
我已经按照指示实现了 DotNetOpenAuth 提供的示例应用程序 here . 正如您在下面看到的,这要求用户安装此 facebook 应用程序。 我只是想让用户使用他们的 Facebook 登
我的主页上有标准的 Facebook 登录按钮,我不希望人们仅在用户单击登录按钮时使用他们的 Facebook 帐户自动登录我的网站。 如果用户未登录 Facebook,将出现一个弹出窗口询问他的凭据
我是一名优秀的程序员,十分优秀!