Facebook对象调试器



我们在英国经营一个博客,最近注意到当文章被点赞、分享等时,Facebook停止了提取我们的帖子描述和图片。

运行Facebook对象调试器时,我收到以下消息:

响应代码:200

必须修复的错误无法下载:无法从URL检索数据。

(如果您想亲自观看,这里有一个链接:https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.heruni.com%2F)

下面是我们代码的副本——我们做错了什么?

<?php
function is_facebook(){
    if(!(stristr($_SERVER["HTTP_USER_AGENT"],'facebook') === FALSE)) {
        return true;
    }
}
?>
<!DOCTYPE html>
<html dir="ltr" lang="en-US"<?php if(is_facebook()){echo ' xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/"';}?>>
<head>
    <title><?php wp_title(''); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
<meta name="msvalidate.01" content="374D59D3C3F26F6EFC410429D512A98C" />
    <?php if(is_facebook()){ ?>
        <meta property="og:title" content="<?php single_post_title(''); ?>"/>
        <meta property="og:type" content="article"/>
        <meta property="og:image" content="<?php echo wp_get_attachment_thumb_url( get_post_thumbnail_id( $post->ID ) ) ?>"/>
        <meta property="og:url" content="http://<?php echo $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];?>"/>      
        <meta property="og:site_name" content="<?php bloginfo('name'); ?>"/>
        <meta property="fb:app_id" content="256997234347344"/>
    <?php }?>

检查页面中是否使用gzip,禁用它,然后重试。这为我修复了它。

这是Facebook为您的页面看到的标记:

https://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fwww.heruni.com%2F

你不需要在这里做任何is_facebook()条件的东西——标签和命名空间应该在网络上对所有HTTP客户端可见,而不仅仅是facebook scraper。

删除所有这些条件,代码就可以工作了。

最新更新