如何有效地检索 Facebook 照片 URL 的到期日期并在到期前续订?

2023-11-25

主要问题:

  • 应用程序缓存来自 Facebook 照片 CDN 的 URL
  • 照片有时会过期

我的“技术”问题:

  • Facebook CDN“过期”标头似乎不可靠(或者我不知道如何处理它们)

使用 CURL 检索过期日期:

  • curl -i -X HEAD https://scontent-b.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/q82/p320x320/10458607_4654638300864_4316534570262772059_n.jpg?oh=9d34386036754232b79c2208c1075def&oe=54BE4EE2

  • 返回前一分钟:Mon, 05 Jan 2015 01:34:28 GMT

  • 现在再次调用它返回:Mon, 05 Jan 2015 01:35:27 GMT

  • 两次“Cache-Control”返回相同的结果:Cache-Control: max-age=1209600

So far:

  • 似乎最可靠的方法之一是让后台工作一直检查照片,但这感觉有点“错误”,就像“暴力破解”。
  • 拥有后台作业可能会允许在该照片网址“更新”之前提供过期的图片

我的问题是:

  • 即使 max-age 参数似乎没有改变,我是否应该使用它?
  • 有没有可靠的方法来使用 facebook 的 CDN URL?
  • 关于如何实施还有其他想法吗?
  • Facebook API应该用来惩罚行为恶劣的程序员吗?笑话>

可能的解决方案 ?

  • 在提供任何 CDN URL 之前,请检查 facebook 是否有最新的 URL

    ~> 会大大减慢我的请求速度

  • 有一个后台作业来更新 URL 和到期日期

    ~> 可能会有过期的照片,而工作不会“捕获”它们

  • 将照片下载到我自己的 CDN

    〜>我猜这不是一个好习惯

更新: ~> 也许 Tinder 实际上将用户的图片缓存在自己的 CDN 上:https://gist.github.com/rtt/10403467看来 Facebook 对此还算满意吧?


Expires确切地说是一件事,但它不是你想象的那样:

Expires 实体标头字段给出了响应被视为过时的日期/时间。 […]

Expires 字段的存在并不意味着原始资源将在该时间、之前或之后发生更改或不再存在。

RFC 2616 §14.21,强调我的

如果 Facebook 的图片 URL 在某个时间点后停止工作,那是他们的事。他们的 HTTP 标头不必提及它,事实上也没有提及。

话虽这么说,我suspectoeURL 参数可能包含过期时间戳。如果我解释54be4ee2作为包含 UNIX 时间戳的十六进制数字,我得到的是 2015 年 1 月 20 日,距离现在几乎正好一个月。这可能就是您正在寻找的价值吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何有效地检索 Facebook 照片 URL 的到期日期并在到期前续订? 的相关文章

  • 显示即将到来的 Facebook 好友生日

    我仍然得到列表脸书好友以 的形式一月至十二月按升序排列 见下图 但现在我想以以下形式显示 Facebook 好友列表即将到来的生日 Like 最近的热门内容 我使用以下查询来获取好友列表 Log d LOG TAG requestFrien
  • Ionic Facebook Api 无效密钥哈希

    我无法让我的应用程序允许 Facebook 登录 每次用户尝试登录 Facebook 并使用他们的 FB 验证我的应用程序时 都会出现以下错误 无效的密钥哈希 它们的密钥哈希 xxxxxxxxxx 与任何存储的密钥哈希不匹配 配置您的应用程
  • iPhone 应用程序在首次 Facebook Connect 授权/登录后崩溃

    我一直在到处寻找答案 但找不到 问题是 我有一个 iPhone 应用程序 在 AppStore 上 它使用脸书 iPhone SDK https github com facebook facebook iphone sdk 我使用 SDK
  • 在线运行 Facebook FQL

    我可以在网络浏览器中的哪里在线运行 FQL 查询 我可以在网络浏览器中的哪里在线运行 FQL 查询 在 Facebook 开发者中图形浏览器 https developers facebook com tools explorer工具 采用
  • Facebook - “IN”子句中参数的最大数量?

    In Facebook query language FQL 您可以指定一个IN子句 例如 SELECT uid1 uid2 FROM friend WHERE uid1 IN 1000 1001 1002 有谁知道你可以传入的参数的最大数
  • 无法从 Facebook 获取访问令牌。收到 OAuthException 提示“验证验证码时出错”

    我正在使用 java 我的演示应用程序的目的很简单 更新用户状态 我跟着服务器端流程在页面上http developers facebook com docs authentication http developers facebook
  • 无法获取 Facebook 传入请求

    我正在尝试在我的 Facebook android 游戏应用程序中实现发送数据并接受该数据 我正在关注https developers facebook com docs android send requests notification
  • 调用“DOMNodeInserted”事件时添加元素

    我想在每个 喜欢 按钮 chrome 扩展 之后添加一个元素 由于帖子被添加到新闻提要而不刷新页面 我必须添加一个事件侦听器 DOMNodeInserted 但是当我尝试把after 里面的功能 它不起作用 Code contentArea
  • SDK尚未初始化,请务必先调用FacebookSdk.sdkInitialize()

    我在实现 Facebook SDK 时遇到此错误 并且我tried https stackoverflow com questions 15490399 error inflating class com facebook widget l
  • 如何在 Facebook SDK for iOS 中定义“GeoPoint”属性

    我试图通过创建一个继承预定义 地点 对象的开放图对象来对开放图故事进行地理标记 但是 我不知道如何在 iOS 中定义 GeoPoint 属性 place location 这里有一个类似问题的答案 https stackoverflow c
  • 黑莓 Facebook SDK jar 文件

    大家好 我在使用 Facebook Blackberry SDK 以及如何在我的项目中使用它时遇到问题 我有一个使用 SourceForge 上提供的源文件制作的项目 我在我正在开发的项目中引用了这个项目 非常适合编程 但是当我想在模拟器上
  • iOS5 和 Facebook API

    我想将我的应用程序与 Facebook 集成并从 github 下载 Facebook ios sdk 但是 该 sdk 适用于 Xcode 4 0 代码库 我正在使用 Xcode 4 2 for iOS 5 beta 5 应用程序 是否有
  • Facebook JS SDK渐进式网络应用程序问题

    我有一个使用 Angular 4 构建的渐进式 Web 应用程序 我的问题是从主屏幕应用程序使用时 Facebook 登录对话框不会自动关闭 在 Chrome 浏览器中打开时它工作得很好 但是当我从安装的主屏幕应用程序使用它时 对话框窗口打
  • 如何将 Facebook LoginButton 集成到 PreferenceScreen 中

    我想让我的用户能够通过 设置 屏幕连接 断开与 Facebook 的连接 该屏幕使用简单的PreferenceScreen 如何将这个自定义 Button 类集成到PreferenceScreen https developers face
  • 如何使用 graph api 获取粉丝页面的点赞数?

    如何使用 graph api 获取粉丝页面的点赞数 早些时候它在这里 https graph facebook com FANPAGE ID access token ACCESS TOKEN https graph facebook co
  • 在 Facebook 上分享时如何更改 Play 商店应用程序的预览?

    我已在 Google Play 开发者控制台中更改了游戏的图标和屏幕截图 并且它在 Play 商店中正确显示 但当我尝试在 Facebook 上分享 Play 商店链接时 预览会带有旧图标和屏幕截图 如何将此预览更新到应用程序的最新版本 你
  • Facebook 分享不显示来自开放图元标签的图像

    我正在尝试将 Facebook 共享按钮集成到我雇主的网站 标题 网址 描述 简介均显示正确 但未附加任何图像 当共享对话框打开时 图像容器会闪烁 然后消失 就好像 facebook 正在尝试处理图像但失败一样 我正在使用 og image
  • Android 如何使用 facebook 3.0 sdk 点赞帖子

    我想在我的 Android 应用程序中实现 喜欢 选项 但我不知道要使用哪个请求 我打开了一个有效的 Facebook 会话以及我想要点赞的 ID 帖子 我该如何实现这个功能呢 Thanks 我找到了解决方案 为了喜欢帖子 我使用 face
  • Graph API / FQL 不返回页面的所有事件

    脸书页面 http facebook com getwellgabby events http facebook com getwellgabby events 目前有 8 个活动 我能看到他们 非管理员可以看到它们并可以加入它们 但是 当
  • 通过 Facebook 图 api 点赞帖子

    你好 我对 facebook PHP SDK 没有什么问题 我想通过 facebook PHP SDK 点赞帖子或其他内容 我正在执行此代码 我认为它应该是正确的 但显然它不起作用 给定的错误代码是的 PHP SDK不知道这种POST请求

随机推荐

  • 如何找到elasticsearch中最常用的短语?

    我知道您可以使用 using 方面在索引中找到最常用的术语 例如 对于以下输入 A B C AA BB CC A AA B BB AA B 术语方面返回此 B 3 AA 3 A 2 BB 2 CC 1 C 1 但我想知道是否可以列出以下内容
  • 如何更改本地 Service Fabric 默认启动 URL?

    我使用 Visual studio 2017 在 Service Fabric 本地集群中创建了一个无状态服务 它带有预定义的随机端口 8462 我将 ServiceManifest xml 中的端口更改为另一个端口 但每次启动项目时它都会
  • 如何为 ios 应用程序构建和使用 C++ 静态库

    我知道如何使用构建对象 C 静态库iOS gt Framework Library gt Cocoa Touch Static Library在 xcode 4 6 中 在本教程的帮助下很简单在 iOS 教程中创建静态库 然而 我不确定的一
  • 在 Pandas DataFrame 中创建多列的所有可能组合

    鉴于以下数据框 df pd DataFrame Student Siri Alexa Class 6 7 Section A B Teacher Ravi Mark School C D 我想返回一个包含所有列值的所有可能组合的表 我使用下
  • 如何永久删除 Google 管理的虚拟机

    我无法永久删除我创建的由 Google App Engine 管理的虚拟机 我已从开发人员控制台和使用 gcloud 命令多次删除它们 在每种情况下 命令都会成功完成并删除虚拟机 但随后 Google 几乎立即创建一个全新的虚拟机来取代它
  • docker和主机之间的PID映射

    docker 命名空间与主机命名空间有何不同以及 pid 如何在这两者之间映射 谁能给我一个想法 有助于使用源代码在主机和 docker 之间映射 pid 的简单方法 您可以在中找到映射 proc PID status文件 它包含这样一行
  • 实体框架是否支持循环引用?

    我有两个具有父 子关系的实体 此外 父级包含对 主 子级的引用 因此简化模型如下所示 class Parent int ParentId int MainChildId class Child int ChildId int ParentI
  • caret::train:指定模型生成参数

    我正在使用caretR 中用于模型生成的库 我想生成一个earth 又名 MARS 模型 我想指定degree该模型生成的参数 根据文档 第 11 页 earth方法支持此参数 指定参数时出现以下错误消息 gt library caret
  • JSch会话超时限制

    我正在使用 JSch 0 1 50 为我的 CI Jenkins 插件设置到远程服务器的连接 假设我想在这里使用session connect 60000 超时 60 秒 Session session null try JSch jsch
  • 在 1 和 0 的矩形中找到最大块的简单方法

    我正在尝试提出暴力 天真的 解决方案来找到 1 和 0 的矩形中最大的 1 或 0 块 我知道可以做到这一点的最佳方法O n 时间 其中 n 是矩形的总大小 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
  • 有 Perl 或 Lua 可以替代 Capistrano 吗?

    对于许多 Web 应用程序 我需要像 Capistrano 这样的东西来自动化部署 我知道 Capistrano 可以用来部署非 ruby 应用程序 但我对 Ruby 不熟悉 所以我预计编写部署配置可能会有点痛苦 所以我想知道 除了用 Pe
  • JavaScript - 更改 CSS 颜色 5 秒

    我试图找到一种方法来简要突出显示命名链接上的文本 但只持续几秒钟 a href faq1 因此 在常见问题解答列表中 它会跳转到正确的 ID 将颜色更改为红色几秒钟 作为最终用户的视觉提示 答案就在这里 但随后返回正常颜色并且间隔完成 如何
  • 如何在不使用TOP和子查询的情况下从表中获取第n高的工资?

    最近在一次采访中 我被要求编写一个查询 在该查询中我必须从表中获取第 n 个最高薪水 而不使用 TOP 和任何子查询 我完全困惑了 因为我知道实现它的唯一方法同时使用 TOP 和子查询 请提供其解决方案 提前致谢 尝试 CTE 通用表表达式
  • Angular UI 路由器嵌套视图

    我有这样的结构 div div
  • 从 .txt 文件中用 C++ 美化 JSON 字符串

    我目前正在使用 C 工作 从使用 ostream 写入 txt 文件的请求中获取 HTTP 响应 这是异步发生的 我不想改变它 数据写入完成后 我想从文件中读取 data request type City query London Uni
  • Visual Studio 中仅调试类和资源 - 这可能吗?

    是否可以将一个类添加到 Visual Studio 中的项目中 并仅为该项目的调试配置构建该类 也就是说 它根本不会出现在Release构建中 如果可以的话 是否也可以对资源做同样的事情 我正在特别考虑仅在调试配置中运行但从程序集中删除以供
  • 合成属性是否已分配/初始化?

    如果我有一个习惯NSObject名为 ProgramModel 的类 当我时它是否获得 alloc init ed property and synthesize来自另一个班级 例如 在这样的 ProgramController 类中 Pr
  • 查找 Go 切片或数组中的唯一项

    我是个新手 现在我真的非常非常困惑 假设我有一个坐标列表 并且假设我在这个坐标列表中有一些双精度数 我一生都无法弄清楚如何制作一份独特的清单 通常在 Python 中我可以使用集合和其他内置函数来 作弊 在 Go 中则不然 package
  • R:ggplot ylim 不起作用

    我正在尝试改变情节中的 ylim 但一旦我改变它 情节就消失了 我无法弄清楚原因 有人可以帮助我找出问题的根本原因吗 gt df lt data frame Category c A B C D B A D C Setup c X Y Ga
  • 如何有效地检索 Facebook 照片 URL 的到期日期并在到期前续订?

    主要问题 应用程序缓存来自 Facebook 照片 CDN 的 URL 照片有时会过期 我的 技术 问题 Facebook CDN 过期 标头似乎不可靠 或者我不知道如何处理它们 使用 CURL 检索过期日期 curl i X HEAD h