Los metadatos de gráfico abierto no se extraen en Facebook hasta que ejecuto ese enlace específico a través del depurador

2

Agregué metadatos de gráficos abiertos a todas las publicaciones en un sitio, sin embargo, cuando intento pegar un enlace de publicación en Facebook, no se carga la metainformación del gráfico.

Luego, cuando inserto la URL en el depurador / linter , funciona, tanto dentro del depurador como al publicar Normalmente en Facebook (que no funcionó momentos antes).

Este problema parece haber sido abordado en el pasado, en esta pregunta de desbordamiento de pila . Sin embargo, esa pregunta se refiere a un entorno Rails.

En esa pregunta, la aplicación no pudo manejar varias solicitudes http al mismo tiempo. El problema se resolvió manejando todas las solicitudes de API de Facebook en segundo plano usando algo llamado delayed_response.

¿Cuál es la forma más sencilla en la que podría lograr esto o algo similar en un entorno PHP que ejecute Wordpress y, por lo tanto, (con suerte) resuelva mi problema?

** No incluí un enlace de muestra en esta publicación porque, tan pronto como un usuario lo ejecuta a través del depurador, parecerá que funciona. *

Editar: muestra de etiquetas meta de una página de publicación:

<meta property="og:title" content="Budget proposal good news for Ontario drivers - AdvocateDaily.com" />
<meta property="og:type" content="website" />
<meta property="og:image" content="http://build.advocatedaily.com/wp-content/uploads/2013/04/Stacey-Stevens_Colour_NEW_2012-e1354206636925-150x150.jpg" />
<meta property="og:url" content="http://advocatedaily.com/2013/05/budget-proposal-good-news-for-ontario-drivers/" />
<meta property="og:description" content="A provincial budget proposal to reduce auto insurance premiums by an average of 15 per cent is good news for Ontario drivers, but should not come at the cost of benefits available under the policy, says Toronto personal injury lawyer Stacey L. Stevens. &#8220;In response to this announcement, the Insurance Bureau of Canada (IBC) predicts the [...]" />
<meta property="og:site_name" content="Advocate Daily" />

El PHP se inserta en wp_head:

add_action('wp_head', 'add_fb_open_graph_tags');
function add_fb_open_graph_tags() {
    if (is_single()) {
        global $post;
        if(get_the_post_thumbnail($post->ID, 'thumbnail')) {
            $thumbnail_id = get_post_thumbnail_id($post->ID);
            $thumbnail_object = get_post($thumbnail_id);
            $image = $thumbnail_object->guid;
        } else {
            $image = get_template_directory_uri()."/images/advocatedaily-avatar.png";
        }
        //$description = get_bloginfo('description');
        $description = og_excerpt( $post->post_content, $post->post_excerpt );
        $description = strip_tags($description);
        $description = str_replace("\"", "'", $description);
?>
<meta property="og:title" content="<?php the_title(); ?> - AdvocateDaily.com" />
<meta property="og:type" content="website" />
<meta property="og:image" content="<?php echo $image; ?>" />
<meta property="og:url" content="<?php the_permalink(); ?>" />
<meta property="og:description" content="<?php echo $description ?>" />
<meta property="og:site_name" content="<?php echo get_bloginfo('name'); ?>" />
<?php   }
}
function og_excerpt($text, $excerpt){
    if ($excerpt) return $excerpt;
    $text = strip_shortcodes( $text );
    $text = apply_filters('the_content', $text);
    $text = str_replace(']]>', ']]>', $text);
    $text = strip_tags($text);
    $excerpt_length = apply_filters('excerpt_length', 55);
    $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
    $words = preg_split("/[\n
     ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
    if ( count($words) > $excerpt_length ) {
            array_pop($words);
            $text = implode(' ', $words);
            $text = $text . $excerpt_more;
    } else {
            $text = implode(' ', $words);
    }
    return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
    
pregunta Orun 12.05.2013 - 14:24

2 respuestas

3

Primero, esta no es una pregunta específica de WordPress, es una pregunta de Facebook.

En segundo lugar, Facebook almacena en caché las páginas, no las rastrean en cada envío. Si tiene una URL que ya ha sido enviada a Facebook anteriormente, entonces ya la habrán rastreado para los datos OG una vez, y la habrá guardado en su caché. Si luego cambias los datos OG, no lo notarán de inmediato, ya que se están extrayendo de su caché, no de la página.

El depurador de Facebook obliga a su rastreador a retirarse de la página en tiempo real y, por lo tanto, actualiza su caché.

Tan simple como eso realmente. Si alguna vez se ha publicado la URL en Facebook, cambiar los datos de OG no tendrá efecto inmediato. Tomará algunas semanas antes de que FB se dé cuenta. El uso del depurador anula eso.

    
respondido por el Otto 12.05.2013 - 20:58
1

Tuve el mismo problema. Lo que necesitas es decirle a Facebook que vuelva a raspar tu contenido.

Diríjase a este enlace: enlace y conecte su URL. Después de que vuelva el depurador, Debería ver un botón que diga "raspar de nuevo". Haz clic en él.

Después de hacer eso, la información apareció como normal en Facebook.

Estoy seguro de que hay una forma más directa de decirle a Facebook que elimine tu contenido de nuevo, pero esto también funciona.

    
respondido por el Peak 17.06.2017 - 08:51

Lea otras preguntas en las etiquetas