gpt4 book ai didi

Facebook photo获取参数和照片可用多长时间

转载 作者:行者123 更新时间:2023-11-30 05:21:20 25 4
gpt4 key购买 nike

当我从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com