0

我已经实现了一个使用 sharer.php 方法的 SHARE 按钮。图像在第一次尝试时不会被刮掉,但只有在第二次尝试后才会被刮掉。我假设它被 Facebook 服务器缓存后。

这是我的 URL,当我单击 SHARE 按钮时会发生什么

http://viddsee.com/video.php?video=wild_fire_2011

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fviddsee.com%2Fvideo.php%3Fvideo%3Dwild_fire_2011

任何帮助将不胜感激!

德里克

4

2 回答 2

4

这是一个预缓存问题。在这里查看:https ://developers.facebook.com/docs/sharing/best-practices#pre-cache-images

于 2014-11-17T01:59:12.673 回答
3

我找到了一个不太优雅的解决方法来解决这个问题。我发现当我在尝试共享新链接之前使用 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
    });

这有时会失败而根本没有响应,因此您可能需要添加如下内容:

$.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 图形 api 的帖子调用,它完成这三个电话大约需要 2 - 5 秒,但它是一些东西。完成此操作后,我想也许我可以检查 ajax.post 响应以检查它在找不到图像时是否发生变化,因此我可以对其进行迭代,但我还没有时间这样做,所以如果你最终检查了,让我知道。

问候

于 2013-10-30T15:41:04.593 回答