我已经坚持这个问题好几个星期了,并试着在下面给出一个简短而详细的解释:
情况
访问网站的用户可以选择使用GD-library生成图片。因此每个用户都生成了个人形象。简单......直到现在。生成图像后,用户可以选择将此图像共享到Facebook。这是通过OpenGraph协议完成的。
什么工作(是的!)
生成图像效果非常好。与Facebook分享内容也很有效。
问题
尽管以下代码用于共享图像(fbrefresh=CAN_BE_ANYTHING
)。 FB剧照拉旧图像。有时这是一个非常古老的图像,有时它是一个更新的图像。但绝不是刚生成的图像。
现在?
如上所述,我已经尝试了fbrefresh=CAN_BE_ANYTHING
。同样在de debug工具中,右图像没有显示,但这可能是因为生成的图像具有从用户cookie生成的唯一ID。因此,此ID仅在用户单击生成时以及之后共享生成的图像时可用。
互联网上是否有任何使用相同策略并且有效的示例?我搜索了一半的互联网并没有发现它变得越来越令人沮丧。
答案 0 :(得分:1)
生成图像后,用户可以选择将此图像共享到Facebook。这是通过OpenGraph协议完成的。
后者究竟是什么意思?您是仅将该图像上传到用户的墙/其中一张相册,还是发布了附有用户生成照片的Open Graph对象? (顺便说一下,用户生成的照片对于OG操作来说就是字面意思 - 你应该只使用用户在拍摄行动时使用手机拍照的照片。我怀疑是否GDlib生成的图像符合该描述。)
虽然以下代码用于共享图像(fbrefresh = CAN_BE_ANYTHING)。 FB剧照拉了旧图像。
通过“拉”,你的意思又是什么?您是将照片上传为HTTP POST上传,是通过URL上传,是否将其指定为og:图像作为OG对象,还是将其作为用户生成的照片传递给发布动作?
现在,通常由URL引用的资源被请求客户端正确刷新的最简单方法是将不同的值附加到查询字符串/作为GET参数 - f.e.当前的unix时间戳:…/image.php?1984372634
或…/image.php?foo=bar&forcerefresh=1984372634
由于此值每秒都会更改,因此会使每个网址成为不同的网址,而请求客户端绝对无法选择,但要请求该资源,因为他不能在缓存中拥有它。