使用 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的主要内容,如果未能解决你的问题,请参考以下文章
从科尔多瓦应用程序在 Instagram 上分享图像到用户个人资料
php [SmartCrawl]通过为MarketPress和WooCommerce产品生成和呈现产品类型OpenGraph数据来补充SmartCrawl OpenGraph