使用 Opengraph 将生成的个人图像分享到 FB

Posted

技术标签:

【中文标题】使用 Opengraph 将生成的个人图像分享到 FB【英文标题】:Share generated personal image to FB with Opengraph 【发布时间】:2013-01-09 15:28:04 【问题描述】:

我已经被这个问题困扰了好几个星期了,我会尝试在下面给出一个简短而详细的解释:

情况

访问网站的用户可以选择使用GD-library 生成图像。所以每个用户都生成了个人形象。很简单……直到现在。生成图像后,用户可以选择将此图像分享到 Facebook。这是通过 OpenGraph 协议完成的。

什么有效(是的!)

生成图像工作正常。向 Facebook 分享内容也很有效。

问题

虽然以下代码用于共享图像 (fbrefresh=CAN_BE_ANYTHING)。 FB 剧照拉出一张旧图。有时这是一个非常旧的图像,有时它是一个更新的图像。但绝不是刚刚生成的图像。

现在呢?

如前所述,我已经尝试过fbrefresh=CAN_BE_ANYTHING。同样在调试工具中没有显示正确的图像,但这可能是因为生成的图像具有从用户 cookie 生成的唯一 ID。所以这个id只有在用户点击generate之后才可以使用,然后分享生成的图片。

互联网上有没有使用相同策略并且有效的示例?网上找了半天也没找到,越来越郁闷了。

【问题讨论】:

【参考方案1】:

生成图片后,用户可以选择将此图片分享到 Facebook。这是通过 OpenGraph 协议完成的。

你说的后者到底是什么意思?您只是将该图像上传到用户的墙上/他们的一个相册,还是发布一个附有用户生成照片的 Open Graph 对象? (顺便说一句,用户生成的照片字面意思是用于 OG 操作 - 您应该只使用用户在执行操作时使用他们的手机相机拍摄的照片。我怀疑是否GDlib 生成的图像符合该描述。)

虽然以下代码用于共享图像 (fbrefresh=CAN_BE_ANYTHING)。 FB 剧照拉出一张旧图。

你所说的“拉”到底是什么意思?您是否将照片作为 HTTP POST 上传方式上传、通过 URL 上传、是否将其指定为 OG:image 用于 OG 对象,还是在发布操作时将其作为用户生成的照片传递?


现在,对于请求客户端正确刷新 URL 引用的资源,通常最简单的方法是将不同的值附加到查询字符串/作为 GET 参数 - f.e.当前的 unix 时间戳…/image.php?1984372634…/image.php?foo=bar&forcerefresh=1984372634

由于这个值每秒都在变化,它使这些 URL 中的每一个都成为一个不同的 URL,并且请求客户端绝对别无选择只能请求该资源,因为他无法将其保存在缓存中。

【讨论】:

以上是关于使用 Opengraph 将生成的个人图像分享到 FB的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 聊天 API 和 OpenGraph

如何在 Reddit 分享中添加图片标签?

从科尔多瓦应用程序在 Instagram 上分享图像到用户个人资料

php [SmartCrawl]通过为MarketPress和WooCommerce产品生成和呈现产品类型OpenGraph数据来补充SmartCrawl OpenGraph

FB OpenGraph og:图像不拉图像(可能是 https?)

用于 facebook、linkedin 和 twitter 的 OpenGraph 元数据