【问题标题】:Facebook Share not scraping image on first try, but on second try after caching happensFacebook Share 第一次尝试不抓取图像,但在缓存发生后第二次尝试
【发布时间】:2013-08-18 09:56:39
【问题描述】:

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

这是我的网址,当我点击“分享”按钮时会发生什么

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

任何帮助将不胜感激!

德里克

【问题讨论】:

    标签: facebook image button share


    【解决方案1】:

    【讨论】:

    • 没错。上述黑客似乎通过在点击共享按钮之前预先缓存 URL 来解决问题
    • 天哪。添加 og:image:width/height 标签保存了我的培根,这太棒了。谢谢!
    【解决方案2】:

    我发现了一个不太优雅的解决方法来解决这个问题。我发现当我在尝试共享新链接之前使用 facebook scraper(调试器)时并没有发生这种情况,所以我开始寻找一种在用户共享链接之前执行此操作的方法。

    这是我的解决方案,大约 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 响应以检查它在找不到图像时是否发生变化,因此我可以对其进行迭代,但我还没有时间这样做,所以如果你最终会检查一下,让我知道。

    问候

    【讨论】:

    • 酷黑客。我尝试了几种实现共享按钮的方法(FB SDK HTML5 & Iframe / Telerik),但无法避免预缓存问题。这个黑客似乎确实可以解决问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 2020-12-11
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多