为什么不喜欢按钮立即工作?

时间:2014-01-28 19:59:00

标签: facebook-like

当我使用Like按钮创建新网页并首次访问该页面时,该按钮不显示og:title或og:description数据,或者我指定的og:图像。我必须先通过https://developers.facebook.com/tools/debug的Facebook调试器运行它来手动刮取页面。

我的理解是,Facebook会每24小时自动擦除一次页面,如果您希望更快地显示更改,则必须通过调试器运行它来自行扫描。但是,当你第一次调用它上面的Like按钮时,Facebook是否会刮掉页面,所以我不应该第一次刮掉它?

我应该提一下,通过调用

上的Facebook按钮页面,不会重新生成按钮代码
https://developers.facebook.com/docs/plugins/like-button

相反,获取Like按钮的网页是由我开发的网站构建器生成的。当用户选择要放在页面上的“赞”按钮图标时,将修补先前生成的按钮中的代码以包含新的站点名称等。

此外,它是一个XFMBL按钮,如果重要的话。

我想,我希望的最好的解决方案是用PHP编程调用Facebook调试器,用URL来搜索查询字符串,而调试器只是在不打开任何类型的情况下执行它用户对话框。

感谢任何想法。

1 个答案:

答案 0 :(得分:1)

生成类似按钮时,您可以使用此代码将其发送到调试器:

$curlUrl = 'https://developers.facebook.com/tools/debug/og/object?q=' .
    urlencode(your like link);
$access_token = FACEBOOK_APP_ID | FACEBOOK_APP_SECRET;
$params = array(
    'id'           => $curlUrl,
    'scrape'       => 'true',
    'access_token' => $access_token
);
$ch = curl_init('https://graph.facebook.com');
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $params
));
$result = curl_exec($ch);