Facebook共享不是第一次尝试抓取图像,而是在缓存发生后第二次尝试
我实现了一个使用sharer.php方法的共享按钮。图像在第一次尝试时不会被刮伤,但只有在第二次尝试后才会被刮伤。我假设它被Facebook服务器缓存之后 这是我的URL,以及当我点击共享按钮时会发生什么 任何帮助都将不胜感激Facebook共享不是第一次尝试抓取图像,而是在缓存发生后第二次尝试,facebook,image,button,share,Facebook,Image,Button,Share,我实现了一个使用sharer.php方法的共享按钮。图像在第一次尝试时不会被刮伤,但只有在第二次尝试后才会被刮伤。我假设它被Facebook服务器缓存之后 这是我的URL,以及当我点击共享按钮时会发生什么 任何帮助都将不胜感激 德里克我找到了一个解决这个问题的不那么优雅的方法。我发现在尝试共享新链接之前,我使用facebook刮板(调试器)时没有发生这种情况,因此我开始在用户共享链接之前搜索一种方法 这是我的解决方案,大约80%的时间都能正常工作(jQuery): 这有时会失败,根本没有响应
德里克我找到了一个解决这个问题的不那么优雅的方法。我发现在尝试共享新链接之前,我使用facebook刮板(调试器)时没有发生这种情况,因此我开始在用户共享链接之前搜索一种方法 这是我的解决方案,大约80%的时间都能正常工作(jQuery): 这有时会失败,根本没有响应,因此您可能需要添加如下内容:
$.post("https://graph.facebook.com/?id="+encodeURIComponent(url_to_be_shared)+"&scrape=true",
function(contents){
//here you do the facebook share code
}).fail(function(){
//call function again if failed
});
正如我所说,这不是一个优雅的解决方案,它在80%的时间内都能工作,为了最大限度地发挥作用,我做了一个更不优雅的解决方案,并嵌套了三个(是的,三个)对facebook graph api的post调用,完成这三个调用大约需要2-5秒,但这很重要。这样做之后,我想也许我可以检查ajax.post响应,以检查它在找不到图像时是否会发生更改,这样我就可以对其进行迭代,但我还没有找到时间这样做,因此如果您最终检查了它,请让我知道
这是一个预缓存问题。检查这里:酷黑客。我尝试了几种实现共享按钮的方法(FB-SDK-HTML5和Iframe/Telerik),但无法避免预缓存问题。这个黑客似乎确实做到了这一点。谢谢你说得对。上述黑客似乎通过在点击ShareButtonHoly heck之前预缓存URL来解决这个问题。添加og:image:width/height标签保存了我的培根,这太棒了。非常感谢。
$.post("https://graph.facebook.com/?id="+encodeURIComponent(url_to_be_shared)+"&scrape=true",
function(contents){
//here you do the facebook share code
}).fail(function(){
//call function again if failed
});