要求facebook重新抓取URL

cur*_*der 14 facebook facebook-graph-api

og:网站图片最近已更改.该网站包含超过100个页面,每个页面包含其各自的og:image.我怎么能要求或强迫facebook重新抓取所有页面,以便图像得到更新?使用facebook调试工具将是太繁琐的任务.在facebook重新搜索网站之前,我将无法为该应用提交收藏.

CBr*_*roe 33

您可以通过API强制重新扫描,如下所述:https://developers.facebook.com/docs/opengraph/using-objects/#update:

POST /?id={object-instance-id or object-url}&scrape=true
Run Code Online (Sandbox Code Playgroud)

(但是,如果你没有受影响的URL的真实列表,这有点没有实际意义.那么你只能等到它自动发生,我想.)

  • 这绝对是正确的答案.POST /?id = <url>&scrape = true到https://graph.facebook.com/将强制重新抓取hte url的og标签.必须记住,这必须是POST请求,而不是GET请求,否则您只需获得共享数量.如果添加另一个名为callback = <somecallbackfunction>的参数,则可以通过浏览器中的AJAX JSONP请求执行此操作,而无需占用服务器. (2认同)

Anv*_*ena 12

在你的情况下,你有两种选择

  1. 根据ysrb的回答,使用Open Graph Debugger工具循环浏览您的URL列表

  2. 或耐心等待30天,直到Facebook重新抓取您的页面,就像在此处的文档中所述

Facebook为何以及何时抓住我的网站?

Facebook需要抓取与Facebook共享的链接,以了解将哪些链接预览信息显示在Facebook.com或Facebook for iOS和Android上.这种情况每30天发生一次,以确保属性是最新的.将URL输入调试器工具时,也会抓取链接页面.

Facebook会在您的网址上观察缓存标头 - 它会按优先顺序查看"过期"和"缓存控制".但是,即使您指定较长时间,Facebook也会每隔30天刮一次您的页面.

  • @ChrisHoughton - https://developers.facebook.com/docs/plugins/faqs/#scraperinfo(截至2015.04.08) (3认同)

dev*_*raj 5

       $config = array(
            "appId" => 'APP_ID',
            "secret" => 'APP_SECRET');

        $fb = new Facebook($config);
        $r=$fb->api('/','POST',array(
            'id'=>PAGE_URL,
            'scrape'=>'true'
        ));
Run Code Online (Sandbox Code Playgroud)