【问题标题】:Does the Facebook OG Object Debugger Somehow Skip PHP?Facebook OG 对象调试器是否以某种方式跳过 PHP?
【发布时间】:2011-09-27 15:56:22
【问题描述】:

我有一个基本上显示视频的动态 PHP 页面。当 Facebook 用户点击视频时,时间线事件会发布到他们的 Facebook 个人资料中,但我的 OG 元标记似乎不想与存储视频信息的 PHP 变量配合。

如果我直接在元标记中输入正确的字符串,一切都会很好,但页面设计会从我的数据库中挑选视频。

这些是包含 PHP 变量的当前标签:

<head prefix='og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# visiovert: http://ogp.me/ns/fb/visiovert#'>
    <meta property='fb:app_id'      content='261459743887413'> 
    <meta property='og:type'        content='visiovert:advertisement'> 
    <meta property='og:url'         content='http://visiovert.net/ad.php'>
    <meta property='og:site_name'       content='VisioVert'> 
    <?php 
    echo("<meta property=\"og:title\" content=\"".$Video->title."\" />\n");
    echo("<meta property=\"og:description\" content=\"".$Video->description."\" />\n");
    echo("<meta property=\"og:image\" content=\"".$Video->location.".jpg\" />\n");
    echo("<meta property=\"og:video\" content=\"".$Video->location.".mp4\" />\n");
    ?>
    <meta property='og:video:height' content='432' >
    <meta property='og:video:width' content='768'>
</head>

如果您查看页面源代码,您可以在页眉中看到以下内容:

<head prefix='og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# visiovert: http://ogp.me/ns/fb/visiovert#'>
    <meta property='fb:app_id'      content='261459743887413'> 
    <meta property='og:type'        content='visiovert:advertisement'> 
    <meta property='og:url'         content='http://visiovert.net/ad.php'>
    <meta property='og:site_name'       content='VisioVert'> 
    <meta property="og:title" content="Echo" />
    <meta property="og:description" content="An example video ad for VisioVert." />
    <meta property="og:image" content="http://visiovert.net/Videos/echo.jpg" />
    <meta property="og:video" content="http://visiovert.net/Videos/echo.mp4" />
    <meta property='og:video:height' content='432' >
    <meta property='og:video:width' content='768'>
</head>

这完全符合我的要求,但是在使用 Facebook 对象调试器进行测试时,它并没有从 PHP 变量中得到任何东西。我可能错过了眼前的一些东西……但我环顾四周并没有找到答案。

【问题讨论】:

    标签: php meta-tags facebook-opengraph


    【解决方案1】:

    韦利斯克斯

    尝试将 fb 命名空间添加到您的 html 标记中。

     <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#" xmlns:shawnsspace="http://www.shawnsspace.com/ns#">
    

    附言在您的源代码中,只有一半的标签是关闭的。不确定这是否会被忽略,但会在某些浏览器中导致错误。

    【讨论】:

    • 感谢您的回复,我确实关闭了所有标签,并且我的 html 中已经有了 fb 命名空间。
    【解决方案2】:

    我也经常遇到转义问题,您是否尝试过类似下面的方法来避免大量转义?
    下面基本上是如何动态添加我的元数据,我知道它需要更多的代码来回显每个代码,但它避免了很多与转义的混淆。


    <head prefix='og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# visiovert: http://ogp.me/ns/fb/visiovert#'>
        <meta property='fb:app_id'      content='261459743887413'> 
        <meta property='og:type'        content='visiovert:advertisement'> 
        <meta property='og:url'         content='http://visiovert.net/ad.php'>
        <meta property='og:site_name'       content='VisioVert'> 
    
    <meta property="og:title" content="<?php echo $Video->title; ?>" />
    <meta property="og:description" content="<?php echo $Video->description; ?>" />
    <meta property="og:image" content="<?php echo $Video->location; ?>.jpg" />
    <meta property="og:video" content="<?php echo $Video->location; ?>.mp4" />
    
        <meta property='og:video:height' content='432' >
        <meta property='og:video:width' content='768'>
    </head>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多